在PyML中获取多类问题的召回(灵敏度)和精确度(PPV)值

2024-06-01 08:18:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我用PyML进行支持向量机分类。然而,我注意到当我使用LOO评估多类分类器时,results对象没有报告敏感度和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

我看了代码,但不知道这里出了什么问题。有人能解决这个问题吗?在


Tags: 对象fromimportdata分类器报告分类result
2条回答

对于多类灵敏度计算,可以使用scikit-learn metrics API。在

Notice average=None for sensitivity of each class independently.

sklearn.metrics.recall_score(Y_true,Y_prediction,average=None)

例如,如果Y有4个类,那么结果将是一个数组,每个类的敏感度都是。在

^{pr2}$

对于多类问题,您无法获得通常的精度/召回度量。你必须得到每个类的精确性/召回率,你可以计算一个加权平均数。在

我不知道PyML的具体细节,但是您可以浏览一下这些预测并为每个类计算它们。在

相关问题 更多 >