多類別邏輯斯迴歸

Python 中的線性分類器

Michael (Mike) Gelbart

Instructor, The University of British Columbia

以一對多結合二元分類器

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
Python 中的線性分類器

One-vs-rest:

  • 為每個類別訓練一個二元分類器
  • 用全部分類器預測,取最大輸出
  • 優點:簡單、模組化
  • 缺點:未直接最佳化準確率
  • SVM 也常用
  • 可產生機率

「Multinomial」或「softmax」:

  • 為所有類別訓練單一分類器
  • 預測直接輸出最佳類別
  • 缺點:較複雜、需新程式碼
  • 優點:直接解問題本身
  • 也可用於 SVM,但較少見
  • 可產生機率
Python 中的線性分類器

多類別模型的係數

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,)
Python 中的線性分類器

一起來練習吧!

Python 中的線性分類器

Preparing Video For Download...