机器学习classification_report方法及precision精确率和reca。。。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
机器学习classification_report⽅法及precision精确率和reca。
classification_report简介
sklearn中的classification_report函数⽤于显⽰主要分类指标的⽂本报告.在报告中显⽰每个类的精确度,召回率,F1值等信息。
主要参数:
y_true:1维数组,或标签指⽰器数组/稀疏矩阵,⽬标值。
y_pred:1维数组,或标签指⽰器数组/稀疏矩阵,分类器返回的估计值。
labels:array,shape = [n_labels],报表中包含的标签索引的可选列表。
target_names:字符串列表,与标签匹配的可选显⽰名称(相同顺序)。
sample_weight:类似于shape = [n_samples]的数组,可选项,样本权重。
digits:int,输出浮点值的位数.
classification_report⽤法⽰例:
输出:
其中列表左边的⼀列为分类的标签名,右边support列为每个标签的出现次数.avg / total⾏为各列的均值(support列为总和).precision recall f1-score三列分别为各个类别的精确度/召回率及 F1 F1值.
精确度/召回率/F1值
精确度&召回率
精确度/召回率/F1值在<统计学习⽅法>和周志华的<机器学习>中都有详细介绍,以下参考维基百科中的说明:
如下图所⽰,假设有若⼲张图⽚,其中12张是狗的图⽚其余是猫的图⽚.现在利⽤程序去识别狗的图⽚,结果在识别出的8张图⽚中有5张是狗的图⽚,3张是猫的图⽚(属于误报).
图中,实⼼⼩圆代表狗的图⽚,虚⼼⼩圆代表猫的图⽚,圆形区域代表识别结果.
则该程序的精度precision=5/8,召回率recall=5/12。
当⼀个搜索引擎返回30个页⾯时,只有20页是相关的,⽽没有返回40个额外的相关页⾯,其精度为20/30 = 2/3,⽽其召回率为20/60 = 1/3。
在这种情况下,精确度是“搜索结果有多⼤⽤处”,⽽召回是“结果如何完整”。
F1 F1值
F1 F1值是精确度和召回率的调和平均值:
2F1=1P+1R 2F1=1P+1R
F1=2P×RP+R F1=2P×RP+R
精确度和召回率都⾼时, F1 F1值也会⾼. F1 F1值在1时达到最佳值(完美的精确度和召回率),最差为0.在⼆元分类中, F1 F1值是测试准确度的量度。
⽰例说明:
输出:
其中
真实值预测值
00
10
22
22
21
对⽰例程序中的结果:
第⼀⾏的计算:
即0的预测情况:真实值中有1个0,预测值中有2个0,其中1个预测正确,1个预测错误.如图所⽰:则,
P=12=0.5 P=12=0.5
R=11=1 R=11=1
F1=212×112+1=0.67 F1=212×112+1=0.67
第⼆⾏的计算:
即1的预测情况:真实值中有1个1,预测值中有1个1,且预测错误.如图所⽰:
则,
P=01=0 P=01=0
R=01=0 R=01=0
F1=0 F1=0
第三⾏的计算:
即2的预测情况:真实值中有3个2,预测值中有2个2,且预测正确.如图所⽰:
则,
P=22=1 P=22=1
R=23=0.67 R=23=0.67
F1=21×231+23+=0.8。