我有一个多类 SVM 分类器,标签为“A”、“B”、“C”、“D”。
这是我正在运行的代码:
>>>print clf.predict([predict_this])
['A']
>>>print clf.decision_function([predict_this])
[[ 185.23220833 43.62763596 180.83305074 -93.58628288 62.51448055 173.43335293]]
如何使用决策函数的输出来预测具有最高概率的类别(A/B/C/D),如果可能的话,它的价值?我访问过https://stackoverflow.com/a/20114601/7760998但它是针对二元分类器的,并且找不到一个很好的资源来解释具有形状 ovo(一对一)的多类分类器的决策函数的输出。
编辑:
上面的示例适用于“A”类。对于另一个输入,分类器预测“C”并在决策函数中给出以下结果
[[ 96.42193513 -11.13296606 111.47424538 -88.5356536 44.29272494 141.0069203 ]]
对于分类器预测为“C”的另一个不同输入,decision_function 给出了以下结果,
[[ 290.54180354 -133.93467605 116.37068951 -392.32251314 -130.84421412 284.87653043]]
如果它是 ovr (one-vs-rest),选择具有更高值的那个会变得更容易,但在 ovo (one-vs-one)(n * (n - 1)) / 2
中,结果列表中有值。
如何根据决策函数推断将选择哪个类?
对于正在寻找此问题答案的任何人,请访问这个已接受的答案,我在 DataScience Stack Exchange 上发布了相同的问题并得到了所需的答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句