Logistic regression และการ regularization

Linear Classifiers ใน Python

Michael (Mike) Gelbart

Instructor, The University of British Columbia

Logistic regression แบบ regularized

Linear Classifiers ใน Python

Logistic regression แบบ regularized

Linear Classifiers ใน Python

Regularization ส่งผลต่อความแม่นยำบน training set อย่างไร?

lr_weak_reg = LogisticRegression(C=100)
lr_strong_reg = LogisticRegression(C=0.01)

lr_weak_reg.fit(X_train, y_train) lr_strong_reg.fit(X_train, y_train)
lr_weak_reg.score(X_train, y_train) lr_strong_reg.score(X_train, y_train)
1.0
0.92

$\text{regularized loss = original loss + large coefficient penalty}$

  • regularization มากขึ้น: ความแม่นยำบน training set ลดลง
Linear Classifiers ใน Python

Regularization ส่งผลต่อความแม่นยำบน test set อย่างไร?

lr_weak_reg.score(X_test, y_test)
0.86
lr_strong_reg.score(X_test, y_test)
0.88

$\text{regularized loss = original loss + large coefficient penalty}$

  • regularization มากขึ้น: ความแม่นยำบน training set ลดลง
  • regularization มากขึ้น: ความแม่นยำบน test set สูงขึ้น (เกือบเสมอ)
Linear Classifiers ใน Python

L1 กับ L2 regularization

  • Lasso = linear regression ที่ใช้ L1 regularization
  • Ridge = linear regression ที่ใช้ L2 regularization
  • สำหรับโมเดลอื่น เช่น logistic regression เรียกตรงๆ ว่า L1, L2 เป็นต้น
lr_L1 = LogisticRegression(solver='liblinear', penalty='l1')
lr_L2 = LogisticRegression() # penalty='l2' by default

lr_L1.fit(X_train, y_train)
lr_L2.fit(X_train, y_train)
plt.plot(lr_L1.coef_.flatten())
plt.plot(lr_L2.coef_.flatten())
Linear Classifiers ใน Python

L2 กับ L1 regularization

Linear Classifiers ใน Python

มาฝึกกันเถอะ!

Linear Classifiers ใน Python

Preparing Video For Download...