新版本scikit-learn中,关于OvR与OvO的相关问题

来源:9-8 OvR与OvO

kongba

2021-01-27

图片描述
老师您好,我的scikit-learn是0.23版本的,在处理多分类问题时,创建LogisticRegression对象时用的默认值auto与
使用OvO指定的multi_class=“multinomial”, solver=“newton-cg” 创建的两个对象,调用score方法的结果是一样的,当初您录制视频时用的那个版本,默认是使用OVR,而最新版本的既不是OvR也不是OvO,而是auto,想问下这个auto是不是指的就是OvO呢?

写回答

1回答

liuyubobobo

2021-01-28

根据 sklearn 文档的解释,现在当 multi_class = "auto" 的时候,如果你的数据只有两个类别,或者 solver 是 liblinear 的话,相当于是 ovr,否则的话,是 multinomial:https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html

//img1.sycdn.imooc.com/szimg/6011b83d09d1c83a08190237.jpg


下面的问题就是,multinomial 是什么?


这个概念在课程中没有介绍。简单来说,此时,整个模型是一个新的模型,这种模型被称为 softmax。softmax 可以解决多分类问题,但是,当分类数量为 2 时,softmax 会退化为和逻辑回归一样。所以,可以当做 softmax 是逻辑回归在多分类问题上的拓展和泛化;逻辑回归是 softmax 在二分类问题上的特例。


具体 softmax 在这个课程里没有介绍,因为这个概念和神经网络,深度学习等连在了一起,不在这个课程的范围里了。可以参考这里的讨论:http://coding.imooc.com/learn/questiondetail/117668.html


如果有兴趣,可以找相关资料再学习一下。


继续加油!:)

0
3
kongba
非常感谢!
2021-01-28
共3条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5839 学习 · 2437 问题

查看课程