我是 scikit-learn 和 SVM 方法的新手。我的数据集与 scikit-learn OneClassSVM 配合良好,可以检测异常值;我使用观察来训练 OneClassSVM,所有这些都是“内点”,然后使用 Predict() 对我的测试数据集生成二进制内点/离群点预测。
然而,为了进一步继续我的分析,我想获得与测试集中每个新观察结果相关的概率。例如。与每个新观察值相关的异常值的概率。我注意到 scikit-learn 中的其他分类方法提供了传递参数probability=True 来计算此值的能力,但 OneClassSVM 不提供此功能。有没有一种简单的方法可以获得这些结果?
我一直在寻找与您相同的问题的答案,直到我到达此页面。卡住了一段时间,然后,我回去检查原始的 LIBSVM 包,因为 scikit-learn 的 OneClassSVM 是基于 LIBSVM 的实现,如上所述here http://scikit-learn.org/stable/modules/generated/sklearn.svm.OneClassSVM.html.
At the LIBSVM 主页 http://www.csie.ntu.edu.tw/~cjlin/libsvm/,他们为选项“-b”声明了以下内容,该选项用于激活 SVM 某些变体的返回概率输出分数:
-bprobability_estimates:是否训练SVC或SVR模型进行概率估计,0或1(默认0)
换句话说,SVM类型的一类SVM(既不是SVC也不是SVR)没有概率估计的实现。
如果我尝试使用 LIBSVM 的命令行界面强制此选项(即 -b),例如:
./svm-train -s 2 -t 2 -b 1 heart_scale
我收到以下错误消息:错误:尚不支持一类 SVM 概率输出
综上所述,这非常想要的输出LIBSVM 尚不支持,因此 scikit-learn 目前不提供它。我希望在不久的将来,他们会激活此功能并更新此处的线程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)