Scikit 分类报告 - 更改显示结果的格式



Scikit分类报告仅显示两位数的精度和召回率分数。是否可以让它在点后显示 4 位数字,我的意思是用 0.67 代替 0.6783 来显示 0.6783?

 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 的精度分数吗?谢谢!

我刚刚遇到了这个老问题。确实有可能在classification_report中拥有更精确的点。你只需要传入一个digits的参数。

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

从文档中:

数字 : 整数 用于格式化输出浮点值的位数

示范:

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

不,不可能显示更多带有 classification_report 的数字。格式字符串是硬编码的,请参阅此处。

编辑:有更新,见CentAu的答案

相关内容

  • 没有找到相关文章

最新更新