Seabornのpairplot関数の結果グラフをGoogle ColaboratoryからGoogle driveにアップロードする方法


この記事でできること

表題の通りです。sklearnの関数で取得できるUCI Machine Learning Repositoryのwineデータセットを利用します

手順

  1. ColaboratoryにGoogle Driveのアクセス権限を与える
  2. Google Driveにファイルの出力をする
    手順2までにはpairplot用のDataFrameを定義しておきましょう

詳しく

1. wineデータセットの読み込み

学習に使用することになりそうですし、DataFrameを学習データ(X_train)で作成するのでデータ分割もしています


from sklearn.datasets import load_wine
wine_dataset = load_wine()

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
        wine_dataset['data'], wine_dataset['target'],
        test_size=0.3, random_state=0)

2. DataFrameの作成


wine_df = pd.DataFrame(X_train, columns=wine_dataset.feature_names)
wine_df['species'] = y_train
wine_df.head()

出力結果はこうなります

3. ColaboratoryにGoogle Driveのアクセス権限を与える


from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

リンクと入力欄が出力されます。そのリンクを踏んでGoogleアカウントでログインして出てきた文字列をコピーして、Google Colaboratoryに戻ってきて入力欄にペーストしてエンター

4. seabornでpairplotを作成し、pngとして保存しておく


import seaborn as sns
sns.pairplot(wine_df, hue='species').savefig('wine_pairplot_hue.png')

このままだとColaboratoryのローカル(Google DriveのColab Notebooksからも見れない)にあるので、Google Driveへのアップロードが必要になります。

5. Google Driveに出力


upload_file_2 = drive.CreateFile()
upload_file_2.SetContentFile("wine_pairplot_hue.png")
upload_file_2.Upload()

6. 結果

ちゃんと登録できてます。ちなみにワインデータセットくらい特徴量があると画質の影響で文字が見えなくなるので他の対処が必要そうです。(Colaboratory上でもプロットされます。こちらはズーム可能)

以上です