Regresión logística y regularización

Clasificadores lineales en Python

Michael (Mike) Gelbart

Instructor, The University of British Columbia

Regresión logística regularizada

Clasificadores lineales en Python

Regresión logística regularizada

Clasificadores lineales en Python

¿Cómo afecta la regularización a la accuracy de entrenamiento?

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

  • más regularización: menor accuracy en entrenamiento
Clasificadores lineales en Python

¿Cómo afecta la regularización a la accuracy 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}$

  • más regularización: menor accuracy en entrenamiento
  • más regularización: (casi siempre) mayor accuracy en test
Clasificadores lineales en Python

Regularización L1 vs. L2

  • Lasso = regresión lineal con regularización L1
  • Ridge = regresión lineal con regularización L2
  • En otros modelos como la regresión logística, solo decimos 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())
Clasificadores lineales en Python

Regularización L2 vs. L1

Clasificadores lineales en Python

¡Vamos a practicar!

Clasificadores lineales en Python

Preparing Video For Download...