開始使用免費開始

帶正規化的 logistic regression

在第 1 章中,你已經把 logistic regression 用在手寫數字資料集。這裡我們要探索 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()
編輯並執行程式碼