【问题标题】:Sklearn: Difference between using OneVsRestClassifier and build each classifier individuallySklearn:使用 OneVsRestClassifier 和单独构建每个分类器之间的区别
【发布时间】:2015-10-06 01:20:35
【问题描述】:

据我所知,多标签问题可以通过 one-vs-all 方案解决,为此 Scikit-learn 实现了 OneVsRestClassifier 作为分类器的包装器,例如 svm.SVC。我想知道如果我真的训练会有什么不同,比如说我们有一个多标签问题,有 n 个类,每个标签有 n 个单独的二元分类器,从而分别评估它们。

我知道这就像实现 one-vs-all 而不是使用包装器的“手动”方式,但两种方式实际上不同吗?如果是这样,它们有何不同,例如执行时间或分类器的性能?

【问题讨论】:

    标签: scikit-learn multilabel-classification


    【解决方案1】:

    没有区别。对于多标签分类,sklearn one-versus-rest 实现了您所描述的二进制相关性。

    【讨论】:

    • 感谢您的回答。如果两种方式相同,是否意味着多标签 SVM 的最终决策不像多类 SVM 那样取决于到超平面的最大距离?也就是说,在测试时,因为一个实例可以属于多个类,所以不需要像我们在多类情况下那样寻求到超平面的最大距离。因此,在这样的多标签场景中,测试实例对于所有类都可以预测为负,而在多类场景中必须预测为类之一。
    • 当前的(“内置”)svm 多类策略是一对一的。因此,您将在 ovr 和 ovo 之间有所不同。在多标签中,ovo 称为两两比较排名。在这两种情况下,决定将取决于到超平面的距离。如果对您有帮助,您可以将多标签分类视为几个相关的二元分类任务。
    • 对不起,我可能没有说清楚。我专注于一对一 (OVR) 案例,并在做出最终决定时想知道多类 (MC) 和多标签 (ML) 场景之间的区别。在这两种情况下,OVR 都分解为 n 个二元分类器,并且在 n 个超平面中,MC 选择一个与测试实例距离最远的一个作为输出,而 ML 只是根据 pos 分配实例。或否定。在每个二元分类器中签名,并且不关心距离。如果是这样,刚才描述的 ML 的决策过程和我在 OP 中所做的一样。
    猜你喜欢
    • 2016-02-20
    • 1970-01-01
    • 2017-08-28
    • 2022-10-04
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多