↓jupyter notebookで、scikit-learnを使って機械学習する場合の手順は以下
# scikit-learnのインストール !pip install scikit-learn # 必要なライブラリの読み込み import matplotlib.pyplot as plt import pandas as pd import numpy as np import sklearn.datasets import sklearn.linear_model import sklearn.model_selection # scikit-learn に付属しているデータセットを読み込む(今回はBoston house-prices (ボストン市の住宅価格) boston = sklearn.datasets.load_boston()
※参考:scikit-learn に付属しているデータセットはこちら
# ボストン市の住宅価格のデータ内容を確認 df = pd.DataFrame(boston.data, columns = boston.feature_names) df.head(5) > CRIM ZN INDUS CHAS NOX RM AGE DIS RAD TAX PTRATIO B LSTAT 0 0.00632 18.0 2.31 0.0 0.538 6.575 65.2 4.0900 1.0 296.0 15.3 396.90 4.98 1 0.02731 0.0 7.07 0.0 0.469 6.421 78.9 4.9671 2.0 242.0 17.8 396.90 9.14 2 0.02729 0.0 7.07 0.0 0.469 7.185 61.1 4.9671 2.0 242.0 17.8 392.83 4.03 3 0.03237 0.0 2.18 0.0 0.458 6.998 45.8 6.0622 3.0 222.0 18.7 394.63 2.94 4 0.06905 0.0 2.18 0.0 0.458 7.147 54.2 6.0622 3.0 222.0 18.7 396.90 5.33
↓ 機械学習用(訓練用とテスト用)のデータを設定
# 住宅の変数(広さ等のデータ)をXに設定する X = boston.data # 住宅価格データをyに設定する y = boston.target y >array([24. , 21.6, 34.7, 33.4, 36.2, 28.7, 22.9, 27.1, 16.5, 18.9, 15. , 18.9, 21.7, 20.4, 18.2, 19.9, 23.1, 17.5, 20.2, 18.2, 13.6, 19.6, 15.2, 14.5, 15.6, 13.9, 16.6, 14.8, 18.4, 21. , 12.7, 14.5, 13.2, 13.1, 13.5, 18.9, 20. , 21. , 24.7, 30.8, 34.9, 26.6, 25.3, 24.7, 21.2, 19.3, 20. , 16.6, 14.4, 19.4, 19.7, 20.5, 25. , 23.4, 18.9, 35.4, 24.7, 31.6, 23.3, 19.6, 18.7, 16. , 22.2, 25. , 33. , 23.5, ~~ 長いので省略
# 交差検証:テストデータ(0.2)と訓練データ(0.8)をわける X_train, X_test, y_train, y_test = sklearn.model_selection.train_test_split(X, y, test_size=0.2) # 線形回帰(LinearRegression)のアルゴリズムを呼び出す lr = sklearn.linear_model.LinearRegression() # 機械学習をさせる lr.fit(X_train, y_train) > LinearRegression() # 精度の検証 lr.score(X_test, y_test) > 0.6937958951932385 # 予測結果をmatplotlibで可視化する fig, ax = plt.subplots() ax.scatter(y, predicted, edgecolors=(0, 0, 0)) ax.plot([y.min(), y.max()], [y.min(), y.max()], 'k--', lw=4) ax.set_xlabel('Measured') ax.set_ylabel('Predicted') plt.show()