2014-02-25 1 views
2

В отчете классификации Scikit будут отображаться точность и показатели отзыва только с двумя цифрами. Возможно ли, чтобы он отображал 4 цифры после точки, я имею в виду вместо 0,67 для показа 0,6783?Отчет по классификации Scikit - изменение формата отображаемых результатов

from sklearn.metrics import classification_report 
print classification_report(testLabels, p, labels=list(set(testLabels)), target_names=['POSITIVE', 'NEGATIVE', 'NEUTRAL']) 
        precision recall f1-score support 

     POSITIVE  1.00  0.82  0.90  41887 
     NEGATIVE  0.65  0.86  0.74  19989 
     NEUTRAL  0.62  0.67  0.64  10578 

Кроме того, следует ли беспокоиться о точности оценки 1,00? Благодаря!

ответ

4

Нет, невозможно отобразить больше цифр с classification_report. Строка формата жестко запрограммирована, см. here.

+0

Спасибо за Ваш ответ. Очень полезно! – Crista23

+0

Обновленный ответ: http://stackoverflow.com/a/39770077/3345375 – jkdev

7

Я только что наткнулся на этот старый вопрос. В действительности возможно иметь больше точных точек в classification_report. Вам просто нужно передать аргумент digits.

classification_report(y_true, y_pred, target_names=target_names, digits=4) 

Из documentation:

цифры: INT Количество цифр для форматирования вывода с плавающей запятой значения

Демонстрация:

from sklearn.metrics import classification_report 
y_true = [0, 1, 2, 2, 2] 
y_pred = [0, 0, 2, 2, 1] 
target_names = ['class 0', 'class 1', 'class 2'] 

print(classification_report(y_true, y_pred, target_names=target_names)) 

Выход:

 precision recall f1-score support 

    class 0  0.50  1.00  0.67   1 
    class 1  0.00  0.00  0.00   1 
    class 2  1.00  0.67  0.80   3 

avg/total  0.70  0.60  0.61   5 

С 4 цифры:

print(classification_report(y_true, y_pred, target_names=target_names, digits=4)) 

Выход:

   precision recall f1-score support 

    class 0  0.5000 1.0000 0.6667   1 
    class 1  0.0000 0.0000 0.0000   1 
    class 2  1.0000 0.6667 0.8000   3 

avg/total  0.7000 0.6000 0.6133   5 
Смежные вопросы