基于LIBSVM在scikit.smv.SVC中启用概率估计

时间:2018-01-10 00:50:07

标签: scikit-learn svm libsvm

在LIBSVM中,-b中的svmtrain标志用于训练SVC或SVR模型以进行概率估计。为了获得测试集的相应结果,我们还将-b结果设置为svmpredict

例如,在MATLAB中,我们会编写以下代码来训练和测试,并启用概率估算:

model = svmtrain(train_labels, train_set, '-b 1')
[result, accuracy, prob] = svmpredict(test_labels, test_set, '-b 1')

但是,在scikit-learn库中初始化SVC时,我们只能在训练时设置-b标志,这与在-b上设置svmtrain标志相同:

clf = scikit.svm.SVC(probability=True)

为了在scikit-learn中进行测试,我使用clf.predict(test_set)来获取课程。但是,当我使用带有svmpredict标志的-b 1时,会产生不同的结果。

scikit-learn svm在使用-b进行测试期间设置svmpredict标志的等效内容是什么?

1 个答案:

答案 0 :(得分:-1)

Scikit-learn没有使用标志来预测分类器的概率,还有一个名为.predict_proba的附加功能。看看documentation

概率是使用Platt scaling确定的,这是一种将来自分类器的任意输出组合成类概率的方法。

另见答案:How does sklearn.svm.svc's function predict_proba() work internally?