帶正規化的 logistic regression
在第 1 章中,你已經把 logistic regression 用在手寫數字資料集。這裡我們要探索 L2 正規化的影響。
手寫數字資料集已載入、分割,並存成變數 X_train、y_train、X_valid 和 y_valid。變數 train_errs 與 valid_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()