我最近开始学习与之合作,sklearn
并且刚刚遇到了这种奇怪的结果。
我使用digits
可用的数据集sklearn
尝试不同的模型和估计方法。
当我在数据上测试支持向量机模型时,我发现sklearn
SVM分类中有两种不同的类:SVC
和LinearSVC
,其中前者使用一种反对一种方法,而另一种则使用一种反对其他方法。
我不知道会对结果产生什么影响,因此我尝试了两者。我进行了蒙特卡洛(Monte Carlo)风格的估计,我对这两个模型都运行了500次,每次将样本随机分为60%训练和40%测试,并在测试集上计算预测误差。
常规SVC估计器产生以下误差直方图: 线性SVC估计器产生以下直方图:
造成这种明显差异的原因是什么?为什么线性模型大多数时候都具有如此高的精度?
并且,与此相关的是,什么可能导致结果出现明显的极化?精度接近1或精度接近0,两者之间什么也没有。
为了进行比较,决策树分类产生的正态分布错误率更高,准确度约为0.85。
Similar to SVC with parameter kernel=’linear’, but implemented in terms of liblinear rather than libsvm, so it has more flexibility in the choice of penalties and loss functions and should scale better (to large numbers of samples).