Regresia logistică și regularizarea

Clasificatori liniari în Python

Michael (Mike) Gelbart

Instructor, The University of British Columbia

Regresia logistică regularizată

Clasificatori liniari în Python

Regresia logistică regularizată

Clasificatori liniari în Python

Cum influențează regularizarea acuratețea de antrenare?

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}$

  • regularizare mai mare: acuratețe de antrenare mai mică
Clasificatori liniari în Python

Cum influențează regularizarea acuratețea de test?

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}$

  • regularizare mai mare: acuratețe de antrenare mai mică
  • regularizare mai mare: acuratețe de test mai mare (aproape întotdeauna)
Clasificatori liniari în Python

Regularizare L1 vs. L2

  • Lasso = regresie liniară cu regularizare L1
  • Ridge = regresie liniară cu regularizare L2
  • Pentru alte modele (ex. regresia logistică) se utilizează direct L1, L2 etc.
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())
Clasificatori liniari în Python

Regularizare L2 vs. L1

Clasificatori liniari în Python

Să exersăm!

Clasificatori liniari în Python

Preparing Video For Download...