我正在使用PyML进行SVM分类。但是,我注意到当我使用LOO评估多分类器时,结果对象不会报告灵敏度和PPV值。相反,它们是0.0:
from PyML import *
from PyML.classifiers import multi
mc = multi.OneAgainstRest(SVM())
data = VectorDataSet('iris.data', labelsColumn=-1)
result = mc.loo(data)
result.getSuccessRate()
>>> 0.95333333333333337
result.getPPV()
>>> 0.0
result.getSensitivity()
>>> 0.0
我看过代码,但无法弄清楚这里出了什么问题。有人为此解决吗?
最佳答案
对于多类问题,您无法获得常规的“精确度/召回率”测量结果。您必须为每个类别获取Precision / Recall,然后才能计算加权平均值。
我不了解PyML的具体细节,但是您可以浏览一下预测并为每个类计算它们。