我最近开始学习使用sklearn
并刚刚遇到这个奇怪的结果。
我使用了digits
可用的数据集sklearn
来尝试不同的模型和估计方法。
当我在数据上测试支持向量机模型时,我发现sklearn
SVM 分类有两个不同的类:SVC
和LinearSVC
,前者使用一对一的方法,而另一个使用一对一的方法。
我不知道这会对结果产生什么影响,所以我都尝试了。我做了一个蒙特卡洛式的估计,我运行这两个模型 500 次,每次将样本随机分成 60% 的训练和 40% 的测试,并计算测试集上的预测误差。
常规 SVC 估计器产生以下误差直方图: 而线性 SVC 估计器产生以下直方图:
什么可以解释如此明显的差异?为什么线性模型在大多数时候都具有如此高的精度?
而且,与此相关的是,什么可能导致结果出现明显的两极分化?接近 1 的准确度或接近 0 的准确度,两者之间没有任何关系。
相比之下,决策树分类产生的错误率更加正态分布,准确度约为 0.85。