Regresia logistică multi-clasă

Clasificatori liniari în Python

Michael (Mike) Gelbart

Instructor, The University of British Columbia

Combinarea clasificatorilor binari cu 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
Clasificatori liniari în Python

One-vs-rest:

  • se antrenează un clasificator binar pentru fiecare clasă
  • se evaluează toți, se alege ieșirea cea mai mare
  • avantaj: simplu și modular
  • dezavantaj: nu optimizează direct acuratețea
  • frecvent utilizat și pentru SVM
  • poate produce probabilități

„Multinomial" sau „softmax":

  • se antrenează un singur clasificator pentru toate clasele
  • predicția returnează direct clasa optimă
  • dezavantaj: mai complex, cod nou
  • avantaj: abordează direct problema
  • posibil pentru SVM, dar mai puțin utilizat
  • poate produce probabilități
Clasificatori liniari în Python

Coeficienții modelului pentru multi-clasă

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,)
Clasificatori liniari în Python

Să exersăm!

Clasificatori liniari în Python

Preparing Video For Download...