始める無料で始める

正則化付きロジスティック回帰

Chapter 1 では、手書き数字データセットにロジスティック回帰を適用しました。ここでは、L2 正則化の効果を確認します。

手書き数字データセットはすでに読み込み・分割済みで、X_trainy_trainX_validy_valid に格納されています。train_errsvalid_errs は空のリストとして初期化済みです。

この演習はコースの一部です

Python で学ぶ線形分類器

コースを見る

演習の手順

  • 複数の C_value を順にループし、毎回 LogisticRegression モデルを作成して学習させます。
  • 各モデルについて、学習データと検証データの誤差を保存します。
  • 正則化パラメータ C に対する学習誤差とテスト誤差のプロットを作成します。
  • プロットを見て、C の最適な値はどれか考えましょう。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Train and validaton errors initialized as empty list
train_errs = list()
valid_errs = list()

# Loop over values of C_value
for C_value in [0.001, 0.01, 0.1, 1, 10, 100, 1000]:
    # Create LogisticRegression object and fit
    lr = ____
    lr.fit(____)
    
    # Evaluate error rates and append to lists
    train_errs.append( 1.0 - lr.score(____) )
    valid_errs.append( 1.0 - lr.score(____) )
    
# Plot results
plt.semilogx(C_values, train_errs, C_values, valid_errs)
plt.legend(("train", "validation"))
plt.show()
コードを編集して実行