ちょっとだけ機械学習をやってみたい方のための、ちょこっとPythonコードです。
scikit-learnに入っている学習用データセット、ボストンデータセットをランダムフォレスト回帰を使って学習・予測するコードです。
Anacondaをインストールしてください
最初に入っていない人はAnacondaのIndividual版をダウンロードしてインストールしましょう。
https://www.anaconda.com/products/individual
ダウンロードが完了したらインストーラーを起動して、デフォルトのまま次へ次へでインストールしてしまって大丈夫です。
Jupyter notebookを起動
Anaconda Navigatorを起動して、ホーム画面にあるJupyter notebookを起動しましょう。
ブラウザが開いたら、右上のメニューの「新規」から「Python 3」を選んで新しいノートブックを作りましょう。
コードを書いて「Run」ボタンで実行
最初の入力フォームに以下のコードを書いて(最悪コピペして)実行してください。
読み込まれたボストンデータセットが表示されます。
# ランダムフォレスト回帰をインポート
from sklearn.ensemble import RandomForestRegressor
# テストデータセット分割関数
from sklearn.model_selection import train_test_split
# 勉強用サンプルデータセットのインポート
from sklearn import datasets
# ボストンデータセットを読み込み
boston = datasets.load_boston()
boston
次に読み込んだボストンデータセットのデータと正解ラベルをそれぞれ機械学習用と検証用に分割します。
train_test_split関数を使っています。
# 訓練用とテスト用にデータ分割
train_x, test_x, train_y, test_y = train_test_split( \
boston.data, boston.target, test_size=0.2)
そしてランダムフォレスト回帰のクラスをインスタンス化して学習させ、検証用データを予測してみましょう。
# ランダムフォレスト回帰クラスのインスタンス作成
forest = RandomForestRegressor()
# トレーニング用データと正解ラベルで学習
forest.fit(train_x, train_y)
# 学習したモデルインスタンスでテストデータの値を予測
preds = forest.predict(test_x)
# 結果をデータフレームで結合して表示
import pandas as pd
df_result = pd.DataFrame(test_y, columns=["実売価格"])
df_result["予測価格"] = preds
df_result
予測と実際の正解の価格を見比べてみましょう。
# グラフ描画ライブラリをインポート
import matplotlib.pyplot as plt
%matplotlib inline
# 折れ線グラフで表示
plt.figure(figsize=(20,10))
plt.plot(test_y,label="True")
plt.plot(preds, label="predicted")
とりあえずやってみるだけの人はこれをやってみて、簡単であることを実感し、興味を持っていただけると幸いです。
以上