如何用python计算f1分数(包括示例)
在机器学习中使用分类模型时,我们用来评估模型质量的常用指标是F1 分数。
该指标的计算方法如下:
F1 分数= 2 *(准确率 * 召回率)/(准确率 + 召回率)
金子:
- 准确性:相对于总阳性预测的正确阳性预测
- 提醒:根据实际阳性总数纠正阳性预测
例如,假设我们使用逻辑回归模型来预测 400 名不同的大学篮球运动员是否会被选入 NBA。
以下混淆矩阵总结了模型所做的预测:
以下是计算模型 F1 分数的方法:
准确率 = 真阳性 / (真阳性 + 假阳性) = 120/ (120+70) = 0.63157
召回率 = 真阳性 / (真阳性 + 假阴性) = 120 / (120+40) = 0.75
F1 分数 = 2 * (.63157 * .75) / (.63157 + .75) = . 6857
以下示例展示了如何在 Python 中计算此精确模型的 F1 分数。
示例:用 Python 计算 F1 分数
下面的代码展示了如何在Python中使用sklearn包的f1_score()函数来计算给定的预测值和实际值数组的F1分数。
import numpy as np from sklearn. metrics import f1_score #define array of actual classes actual = np. repeat ([1, 0], repeats=[160, 240]) #define array of predicted classes pred = np. repeat ([1, 0, 1, 0], repeats=[120, 40, 70, 170]) #calculate F1 score f1_score(actual, pred) 0.6857142857142857
我们看到 F1 分数是0.6857 。这与我们之前手动计算的值相符。
注意:您可以在此处找到f1_score()函数的完整文档。
使用 F1 分数的注意事项
如果使用 F1 分数来比较多个模型,则具有最高 F1 分数的模型代表最能够将观察结果分类的模型。
例如,如果您将另一个逻辑回归模型拟合到数据,并且该模型的 F1 分数为 0.75,则该模型将被认为更好,因为它具有更高的 F1 分数。
其他资源
如何在 Python 中执行逻辑回归
如何在 Python 中创建混淆矩阵
如何在Python中计算平衡精度
F1 分数与准确度:您应该使用哪个?