多分类逻辑回归

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中也常见
  • 可输出概率

"多项式"或"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...