Hồi quy logistic và regularization

Bộ phân loại tuyến tính với Python

Michael (Mike) Gelbart

Instructor, The University of British Columbia

Hồi quy logistic có regularization

Bộ phân loại tuyến tính với Python

Hồi quy logistic có regularization

Bộ phân loại tuyến tính với Python

Regularization ảnh hưởng thế nào đến độ chính xác huấn luyện?

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 mạnh hơn: độ chính xác huấn luyện thấp hơn
Bộ phân loại tuyến tính với Python

Regularization ảnh hưởng thế nào đến độ chính xác kiểm tra?

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 mạnh hơn: độ chính xác huấn luyện thấp hơn
  • regularization mạnh hơn: (gần như luôn) độ chính xác kiểm tra cao hơn
Bộ phân loại tuyến tính với Python

Regularization L1 vs. L2

  • Lasso = hồi quy tuyến tính với L1 regularization
  • Ridge = hồi quy tuyến tính với L2 regularization
  • Với các mô hình khác như hồi quy logistic, ta chỉ nói L1, L2, v.v.
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())
Bộ phân loại tuyến tính với Python

Regularization L2 vs. L1

Bộ phân loại tuyến tính với Python

Cùng luyện tập nào!

Bộ phân loại tuyến tính với Python

Preparing Video For Download...