Regressão logística multiclasse

Classificadores Lineares em Python

Michael (Mike) Gelbart

Instructor, The University of British Columbia

Combinando classificadores binários com 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
Classificadores Lineares em Python

One-vs-rest:

  • ajusta um classificador binário por classe
  • prediz com todos e pega a maior saída
  • pró: simples, modular
  • contra: não otimiza acurácia diretamente
  • comum também para SVMs
  • pode gerar probabilidades

"Multinomial" ou "softmax":

  • ajusta um único classificador para todas as classes
  • a predição já retorna a melhor classe
  • contra: mais complexo, código novo
  • pró: resolve o problema diretamente
  • possível para SVMs, mas menos comum
  • pode gerar probabilidades
Classificadores Lineares em Python

Coeficientes do modelo para multiclasse

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,)
Classificadores Lineares em Python

Vamos praticar!

Classificadores Lineares em Python

Preparing Video For Download...