机器学习中的metrics.classification_report函数

姓名:蔡哲诣  学号:21011210150    学院:通信工程学院

在机器学习或者深度学习中,我们常常需要对我们创建模型的准确率进行评估,然而accuracy参数用于评估时具有一定的局限性,所以在metrics中提供classification_report函数来进行更为全面的评估。

示例1:

其中:

accuracy表示准确率,也即正确预测样本量与总样本量的比值,即9/13=0.69

macro avg表示宏平均,表示所有类别对应指标的平均值,即

precision = (1.0+0.67+0.5+0.67+1.0)/5=0.77

recall = (0.67+0.67+0.67+1.0+0.5)/5=0.70

f1-score = (0.8+0.67+0.57+0.8+0.67)/5=0.70

weighted avg表示带权重平均,表示类别样本占总样本的比重与对应指标的乘积的累加和,即

precision = 1.0*3/13 + 0.67*3/13 + 0.5*3/13 + 0.67*2/13 + 1.0*2/13=0.76

recall = 0.67*3/13 + 0.67*3/13 + 0.67*3/13 + 1.0*2/13 + 0.5*2/13=0.69

f1-score = 0.8*3/13 + 0.67*3/13 + 0.57*3/13 + 0.8*2/13 + 0.67*2/13=0.70

示例2:

说明:classification_report函数的输出结果标签中0、1、2、3、4表示的是每个样本的5列,每列代表一个标签。因此,对于标签0,表示样本中元素处于第一列的1;对于标签1,表示样本中元素处于第一列的1;以此类推。

micro avg表示微平均,表示所有类别中预测正确量与总样本量的比值,即

precision = (2+2+1+1) / 8 = 0.750

recall = (2+2+1+1) / 9 = 0.667

f1-score = 2*precision*recall/(precision+recall) = 0.706

macro avg表示宏平均,表示所有类别对应指标的平均值,即

precision = (1.0+1.0+0.5+1.0+0.0)/5 = 0.700

recall = (1.0+1.0+0.5+1.0+0.0)/5 = 0.700

f1-score = (1.0+1.0+0.5+1.0+0.0)/5 = 0.700

weighted avg表示带权重平均,表示类别样本占总样本的比重与对应指标的乘积的累加和,即

precision = 1.0*2/9 + 1.0*2/9 + 0.5*2/9 + 1.0*1/9 + 0.0*2/9 = 0.667

recall = 1.0*2/9 + 1.0*2/9 + 0.5*2/9 + 1.0*1/9 + 0.0*2/9 = 0.667

f1-score = 1.0*2/9 + 1.0*2/9 + 0.5*2/9 + 1.0*1/9 + 0.0*2/9 = 0.667

samples avg表示带权重平均,表示类别样本占总样本的比重与对应指标的乘积的累加和,即

precision = (1/2 + 2/3 + 3/3) / 3 = 0.722

其中,1/2表示第1行中,标签值为1的预测准确率;2/3表示第二行中标签值为1的预测准确率,以此类推

recall = (1/2 + 2/3 + 3/4) / 3 = 0.639

f1-score = ((2*(1/2)*(1/2))/(1/2+1/2) + (2*(2/3)*(2/3))/(2/3+2/3) + (2*(3/3)*(3/4))/(3/3+3/4)) / 3 = 0.675

其中,f1-score的计算过程中,分别为三个样本中标签值为1的f1值的平均值。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容