分类器报告在 scikit-learn 中告诉我们什么?
What does the classifier report tell us in skikit-learn?
我正在使用 skikit-learn 进行文本分类。当我使用 classification_report() 函数时,它返回以下 table:
precision recall f1-score support
neg 0.86 0.69 0.77 351
pos 0.82 0.92 0.87 517
avg / total 0.83 0.83 0.83 868
precision、recall 和 f1-score 是什么意思?从以上数值可以得出什么结论?此外,这些值是否反映了我的分类器的任何信息?
Recall 反映了有多少给定 class 的示例被标记为 class。 Precision 反映了有多少示例被您的 classifier 标记为 class 是 class 的真实示例。
假设您有两个 classes neg
和 pos
。如果您现在将 所有 个示例标记为 class neg
,那么您对 neg
的召回率将会很高,为 1.00 或 100%,因为只要一个例子是 class neg
,你就把它标记为 neg
。同时 pos
的召回将是可怕的,因为没有一个 class pos
的例子被标记为 pos
。此外,neg
的精度会很差,因为许多标记为 neg
的示例实际上是 pos
.
相反,只有当您绝对确定它们属于 class neg
时,您才可以给出标签 neg
的示例。那么很可能你对 neg
的回忆会很糟糕,因为你几乎没有抓住任何 neg
的例子。但是,您的精度会很高,因为(几乎)所有标记为 neg
的示例实际上都是 class neg
.
所以:将所有内容都标记为 class A 会导致 class A 的召回率很高,但准确率很低。几乎没有标记为 class A 通常会以低召回率结束,但 class A.
的准确率很高
同时列出的 F1-Score 只是召回率和精确率的结合。如果您的 F1-Score 很高,那么召回率和准确率通常都不错。如果它很低,那么你的召回率和准确率往往很差。
根据您的示例值,您可以得出您的 classifiers 性能似乎总体上还不错,F1-Score 为 0.83。 neg
的召回率与其他值相比有点低,因此您的 classifier 在发现 neg
的示例时遇到问题并将其标记为 pos
(然后降低pos
的精度)。如果这些是你的训练结果而不是测试集,那么支持值的差异表明你有更多关于 pos
的例子而不是 neg
,这意味着你将在一个稍微倾斜的数据集上训练.平衡这些数字也可能导致更平衡的召回。
进一步阅读:
我正在使用 skikit-learn 进行文本分类。当我使用 classification_report() 函数时,它返回以下 table:
precision recall f1-score support neg 0.86 0.69 0.77 351 pos 0.82 0.92 0.87 517 avg / total 0.83 0.83 0.83 868
precision、recall 和 f1-score 是什么意思?从以上数值可以得出什么结论?此外,这些值是否反映了我的分类器的任何信息?
Recall 反映了有多少给定 class 的示例被标记为 class。 Precision 反映了有多少示例被您的 classifier 标记为 class 是 class 的真实示例。
假设您有两个 classes neg
和 pos
。如果您现在将 所有 个示例标记为 class neg
,那么您对 neg
的召回率将会很高,为 1.00 或 100%,因为只要一个例子是 class neg
,你就把它标记为 neg
。同时 pos
的召回将是可怕的,因为没有一个 class pos
的例子被标记为 pos
。此外,neg
的精度会很差,因为许多标记为 neg
的示例实际上是 pos
.
相反,只有当您绝对确定它们属于 class neg
时,您才可以给出标签 neg
的示例。那么很可能你对 neg
的回忆会很糟糕,因为你几乎没有抓住任何 neg
的例子。但是,您的精度会很高,因为(几乎)所有标记为 neg
的示例实际上都是 class neg
.
所以:将所有内容都标记为 class A 会导致 class A 的召回率很高,但准确率很低。几乎没有标记为 class A 通常会以低召回率结束,但 class A.
的准确率很高同时列出的 F1-Score 只是召回率和精确率的结合。如果您的 F1-Score 很高,那么召回率和准确率通常都不错。如果它很低,那么你的召回率和准确率往往很差。
根据您的示例值,您可以得出您的 classifiers 性能似乎总体上还不错,F1-Score 为 0.83。 neg
的召回率与其他值相比有点低,因此您的 classifier 在发现 neg
的示例时遇到问题并将其标记为 pos
(然后降低pos
的精度)。如果这些是你的训练结果而不是测试集,那么支持值的差异表明你有更多关于 pos
的例子而不是 neg
,这意味着你将在一个稍微倾斜的数据集上训练.平衡这些数字也可能导致更平衡的召回。
进一步阅读: