代码之家  ›  专栏  ›  技术社区  ›  Mathias Loesch

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

  •  1
  • Mathias Loesch  · 技术社区  · 14 年前

    我正在使用 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
    

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

    1 回复  |  直到 14 年前
        1
  •  5
  •   smola    14 年前

    我不知道PyML的具体细节,但是您可以浏览预测并计算每个类的预测。

        2
  •  2
  •   Juan-Kabbali    5 年前

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

    通知 average=None

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

    例如,如果 Y 有4个类,结果将是一个数组,每个类的灵敏度。

    array([0.96629213, 0.86263736, 0.81920904, 0.7704918])