分析を対話的に実行する¶
はじめに¶
ここでは Jupyter Notebookを用いて対話的に、分析プロセス(分析の処理手順)の設計と分析モデル作成を行います。 分析プロセスの設計と分析モデル作成には、scikit-learnを使用します。
Jupyter Notebookへ接続する¶
Jupyter Notebookへ接続していない場合、 Jupyter Notebookへ接続する を参照し、接続してください。
データを準備する¶
Notebook Dashboardで [New] ボタンを押下し、 [Terminal] を選択してください。
下記のコマンドを実行してください。
$ unzip /opt/aapf/1.5.4/docs/getting_started.zip -d ~/work
Terminal上で exit コマンドを実行した後、Terminalタブを閉じてください。
Jupyter Notebook上で分析する¶
Notebook Dashboard上で、 [work/examples] ディレクトリに移動してください。
Notebookを作成するため、Jupyter Notebook上で [New] ボタンを押下し、 [Python 3] を選択します。
1. データ準備¶
学習データと予測データを読み取ります。読み込んだデータに対して、データ加工を行います。
In [1]:
import pandas as pd
train_df = pd.read_csv('data/automobile_learn.csv', na_values="?")
train_df.dropna(inplace=True)
train_X = train_df.iloc[:, train_df.columns != 'price']
train_Y = train_df.loc[:, 'price']
predict_df = pd.read_csv('data/automobile_predict.csv', na_values="?")
predict_df.dropna(inplace=True)
predict_X = predict_df.iloc[:, train_df.columns != 'price']
predict_Y = predict_df.loc[:, 'price']
2. 分析モデル作成¶
scikit-learnの線形回帰モジュールを利用して、分析モデルを作成します。
In [2]:
from sklearn.linear_model import LinearRegression
lreg = LinearRegression(normalize=True)
lreg.fit(train_X, train_Y)
Out[2]:
3. 結果評価¶
分析モデルで予測した結果のRMSE(Root Mean Squared Error)を確認し、実測値と予測値の対比グラフを表示して確認します。
In [3]:
import numpy as np
Y_pred = lreg.predict(predict_X)
rmse = np.sqrt(np.mean((predict_Y.values - Y_pred) ** 2))
print('rmse: {0}'.format(rmse))
In [4]:
import matplotlib.pyplot as plt
%matplotlib inline
min_val = int(min(predict_Y.min(), Y_pred.min()))
max_val = int(max(predict_Y.max(), Y_pred.max()))
plt.plot(range(min_val, max_val), range(min_val, max_val), 'r--')
plt.xlim(min_val, max_val)
plt.ylim(min_val, max_val)
plt.scatter(predict_Y, Y_pred)
plt.xlabel("Actual Price")
plt.ylabel("Predict Price")
plt.show()
分析手順と実行結果を共有する¶
Notebookをローカル環境にダウンロードして他のユーザーに共有します。
Ctrl-S を押下し、最新状態のNotebookを確実に保存してください。
- Notebook Dashboardで、 [Files] タブを選択し、共有したいファイルのチェックボックスをチェックします。
- 画面上部に表示される「ダウンロード」ボタンを押下し、ダウンロードします。
- ローカル環境にダウンロードしたファイルを、他のユーザーに共有します。