据我了解,在命令行上训练SVM时,可以使用-b 0(默认值)或-b 1指定-b参数以分别启用“决策值”或“概率估计”。我将LIBSVM与基于C-SVC的具有5个类的多类问题一起使用。我可以使用C#库中的概率估计

testset.PredictProbability(model, out estimations);


进行预测之后,我可以在“估计”输出对象中看到5个概率估计。我的理解是,对于5类模型,应该有10个决策值,即1类相对于2类,另一个1类相对于3类,依此类推。如何获得“决策值”?

最佳答案

通过libsvm API公开了三个预测函数。预测,概率预测和值预测。当前尚无法同时获得概率估计值和决策值。

可以通过调用PredictValues函数来返回决策值。实际上,它们将采用X类与Y类的形式进行分类,因为多类SVM是通过一对一方法执行的。这将导致对k *(k-1)/ 2个分类器进行训练(每个分类对分开一个)。这些是SVM使用的原始决策值。另一方面,概率是每个类别的估计概率,因此,当然每个类别仅包含一个值。

关于c# - C#LibSVMsharp库中的LIBSVM'决策值',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32341927/

10-12 21:52