Kerasチュートリアルのポイント - Kerasによる回帰
概要
TensorFlow-Keras回帰チュートリアルをもとに、Kerasによるニューラルネットワーク回帰の実装方法を把握する。 回帰分析を行うデータは、AutoMPG(1970-1980年代の自動車の燃費データ)を用いている。
環境
Python 3.6.3
TensorFlow 1.12.0
Keras 2.2.4
scikit-learn 0.20.2
回帰分析の流れ
- データの準備
- pandasを用いてインポート
- データのクリーニング(利用できないデータ行を削除等)
- データを訓練用とテスト用に分割(訓練用:80%、テスト用:20%でランダム抽出)
- データの正規化
- ニューラルネットワークモデルの構築
- ニューラルネットワークモデルのトレーニング
- モデルの評価
処理のポイント
[ニューラルネットワークの形]
[トレーニング用/テスト用データの振り分け]
[model.compile()のmetrics]
- metricsは、訓練時およびテスト時に、モデルにより評価される評価関数のリスト
- この場合は、平均絶対誤差/平均二乗誤差を指定
model.compile( loss='mean_squared_error', optimizer=optimizer, metrics=['mean_absolute_error', 'mean_squared_error'] )
[model.fit()のvalidation_split]
- 以下の例では、0.2に指定
- その場合、訓練用データの最後の20%(シャッフルなし)が検証のために利用
history = model.fit( normed_train_data, # データ train_labels, # ラベル epochs=EPOCHS, # エポック数 validation_split=0.2, # 検証データに利用するデータ割合(最後からx%)(シャッフルされないことに注意、全てのepochで同じデータ) verbose=0, callbacks=[early_stop, PrintDot()] )
[データの正規化]
- 異なるスケール/レンジを扱う場合、Good Practice
- 正規化しないと、モデルのトレーニングがより難しい
- また、結果のモデルが入力の単位選択に依存する
- テスト時は、訓練に使ったのと同じ分布のテストデータを使う必要あり