はじめに
scikit-learnの最新バージョンでニューラルネットワークが使えるようになっているという話を聞いたので早速試してみました。
バージョンアップ
まず、scikit-learnのバージョンをあげます。
$ pip install scikit-learn --upgrade
ライブラリの読み込み
詳しくは以下のURLを参照していただくとして、とりあえず回帰のライブラリを読み込んでみます。
from sklearn.neural_network import MLPRegressor
電力需要を予測してみる
手前味噌ではありますが、以下の記事で紹介していた内容をニューラルネットワークで実行してみます。
必要なところだけを書き換えてみると...
from sklearn.neural_network import MLPRegressor
model = MLPRegressor(random_state=42)
model.fit(X_train, y_train)
print(model.score(X_test,y_test))
初期値でのスコアは「0.77841866071119836」でした。
隠れ層を増やしてみる
初期設定は以下のとおり。
MLPRegressor(activation='relu', alpha=0.0001, batch_size='auto', beta_1=0.9,
beta_2=0.999, early_stopping=False, epsilon=1e-08,
hidden_layer_sizes=(100,), learning_rate='constant',
learning_rate_init=0.001, max_iter=200, momentum=0.9,
nesterovs_momentum=True, power_t=0.5, random_state=None,
shuffle=True, solver='adam', tol=0.0001, validation_fraction=0.1,
verbose=False, warm_start=False)
そこで、以下のように書き換えてみます。
from sklearn.neural_network import MLPRegressor
model = MLPRegressor(hidden_layer_sizes=(100,100,100,100,),random_state=42)
model.fit(X_train, y_train)
print(model.score(X_test,y_test))
すると、スコアが「0.83302793729266389」になりました(^-^)
結構顕著にスコアが変わりますね。
ちなみに、予測結果をグラフ化するとこんな感じ。
他に変更してみるとしたら、max_iterとかalphaとかでしょうか。
もうちょっといじってみます!!