モデルの指定
ここでは Keras で最初のモデルを扱います。第1・2章よりも大きなデータセットに対して、より複雑なニューラルネットワークをすぐに実行できるようになります。
まずは、ニューラルネットワークの骨組みに隠れ層と出力層を追加します。その後、モデルを学習させ、Keras が最適化を行ってモデルが継続的に良くなっていく様子を確認します。
最初の題材として、産業、学歴、経験年数といった特徴から労働者の賃金を予測します。データセットは pandas の DataFrame df に入っています。利便性のため、目的変数以外の df の内容は NumPy 配列 predictors に変換済みです。目的変数 wage_per_hour は NumPy 配列 target として利用できます。
この章のすべての演習では、Sequential モデルコンストラクタ、Dense レイヤーコンストラクタ、そして pandas をインポート済みです。
この演習はコースの一部です
Pythonで学ぶDeep Learning入門
演習の手順
predictorsデータの列数をn_colsに保存します。これはすでに行われています。modelという名前のSequentialモデルを作成して始めます。modelの.add()メソッドでDenseレイヤーを追加します。- ユニット数は
50、activation='relu'を指定し、input_shapeパラメータにはタプル(n_cols,)を設定します。これは各行にn_cols個の特徴があり、行数は任意で入力として受け付けることを意味します。
- ユニット数は
- さらに
Denseレイヤーを追加します。こちらはユニット数を32、活性化関数を'relu'にします。 - 最後に出力層として、ノードが1つの
Denseレイヤーを追加します。ここでは活性化関数は指定しません。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import necessary modules
from tensorflow.keras.layers import Dense
from tensorflow.keras.models import Sequential
# Save the number of columns in predictors: n_cols
n_cols = predictors.shape[1]
# Set up the model: model
model = ____
# Add the first layer
____.____(____(____, ____=____, ____=(____)))
# Add the second layer
____
# Add the output layer
____