2017-02-04 8 views
0

Я совершил огромную ошибку. Я напечатал вывод scikit-узнать точность SVM как:Вычисление точности из точности, отзыв, f1-score - scikit-learn

str(metrics.classification_report(trainExpected, trainPredict, digits=6)) 

Теперь мне нужно рассчитать точность из следующих выходных данных:

   precision recall f1-score support 

1    0.000000 0.000000 0.000000  1259 
2    0.500397 1.000000 0.667019  1261 
avg/total 0.250397 0.500397 0.333774  2520 

Можно ли рассчитать точность этих значений?

PS: Я не хочу тратить еще один день на получение выходных данных модели. Я просто понял эту ошибку, надеюсь, мне не нужно начинать с самого начала.

ответ

0

Не нужно тратить на это больше времени. В metricsmodule есть все, что вам нужно, и вы уже рассчитали предсказанные значения. Это однострочное изменение.

print(metrics.accuracy_score(trainExpected, trainPredict)) 

Я предлагаю вам потратить некоторое время, чтобы прочитать связанную страницу, чтобы узнать больше об оценке моделей в целом.

Я действительно думаю, что у вас есть большая проблема - у вас есть нулевые предсказанные значения для вашего класса 1, несмотря на наличие сбалансированных классов. Вероятно, у вас проблемы с вашими данными, стратегией моделирования или кодом, с которым вам придется иметь дело.

+0

Вы правы с прогнозируемыми значениями, я не видел этого вначале. Я работаю с большим количеством образцов и функций, и это занимает много времени. То, что я имею в виду, тратя время, действительно ждет выхода каждого входа. Одно изменение строки правильное, но я пытался найти метод вычисления точности над этими значениями (путем анализа значений из этих результатов), чтобы не начинать с начала и записывать оценки в файл. Спасибо за ответ. –