学習曲線を作る
1 つのハイパーパラメータに対して多くの値を試す場合、DataFrame だけでは結果を見やすく整理するのが難しいことがあります。前のセクションでは、これを分析する便利なコツを学びました。特定のハイパーパラメータを増減させたときの最終結果への影響は、「学習曲線」と呼ばれるグラフで分かりやすく示せます。
学習率について少数の値だけを試すのではなく、広い範囲で多くの値を試し、このハイパーパラメータの影響を見やすくします。NumPy の便利な関数 np.linspace(start, end, num) を使うと、指定した区間(start, end)内に等間隔で配置された num 個の値を生成できます。
X_train、X_test、y_train、y_test の各データセットが利用できます。
この演習はコースの一部です
Pythonでのハイパーパラメータチューニング
演習の手順
- 0.01 から 2 の範囲で等間隔に 30 個の学習率を作成します。
- 前の演習と同様のループを作成し、正解率のみをリストに保存します。
- 学習率を横軸、正解率を縦軸にしてプロットします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Set the learning rates & accuracies list
learn_rates = np.linspace(____, ____, num=____)
accuracies = []
# Create the for loop
for learn_rate in learn_rates:
# Create the model, predictions & save the accuracies as before
model = GradientBoostingClassifier(learning_rate=____)
predictions = model.fit(____, ____).predict(____)
accuracies.append(accuracy_score(y_test, ____))
# Plot results
plt.plot(____, ____)
plt.gca().set(xlabel='learning_rate', ylabel='Accuracy', title='Accuracy for different learning_rates')
plt.____