Regresión logística multiclase

Clasificadores lineales en Python

Michael (Mike) Gelbart

Instructor, The University of British Columbia

Combinar clasificadores binarios con one-vs-rest

lr0.fit(X, y==0)

lr1.fit(X, y==1)

lr2.fit(X, y==2)
# get raw model output
lr0.decision_function(X)[0]
6.124
lr1.decision_function(X)[0]
-5.429
lr2.decision_function(X)[0]
-7.532
lr = LogisticRegression(multi_class='ovr')
lr.fit(X, y)

lr.predict(X)[0]
0
Clasificadores lineales en Python

One-vs-rest:

  • entrena un clasificador binario por clase
  • predice con todos; toma la salida mayor
  • pro: simple y modular
  • contra: no optimiza la exactitud directamente
  • común también en SVM
  • puede dar probabilidades

«Multinomial» o «softmax»:

  • entrena un único clasificador para todas las clases
  • la predicción devuelve directamente la mejor clase
  • contra: más complejo, requiere código nuevo
  • pro: aborda el problema directamente
  • posible con SVM, menos común
  • puede dar probabilidades
Clasificadores lineales en Python

Coeficientes del modelo en multiclase

lr_ovr = LogisticRegression(multi_class='ovr') 

lr_ovr.fit(X,y)

lr_ovr.coef_.shape
(3,13)
lr_ovr.intercept_.shape
(3,)
lr_mn = LogisticRegression(multi_class="multinomial")
lr_mn.fit(X,y)

lr_mn.coef_.shape
(3,13)
lr_mn.intercept_.shape
(3,)
Clasificadores lineales en Python

¡Vamos a practicar!

Clasificadores lineales en Python

Preparing Video For Download...