始める無料で始める

モデルの指定

ここでは 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 レイヤーを追加します。
    • ユニット数は 50activation='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
____
コードを編集して実行