2010-10-04 2 views
1

Я использую PyML для классификации SVM. Тем не менее, я заметил, что когда я оцениваю классификатор с несколькими классами, используя LOO, объект результатов не сообщает значения чувствительности и PPV. Вместо этого они равны 0.0:Получите значения отзыва (чувствительность) и точность (PPV) для многоклассовой задачи в PyML

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 

Я просмотрел код, но не мог понять, что здесь не так. У кого-то есть обход?

ответ

4

Вы не можете получить обычные измерения точности/повторения по проблеме с несколькими классами. Вы должны получить Precision/Recall для каждого класса, и вы можете вычислить средневзвешенное значение.

Я не знаю об особенностях PyML, но вы можете просто прочесть предсказания и рассчитать их для каждого класса.