实验目的:
1.学习理解逻辑回归的基本概念,练习python代码的实现。
2.准确理解机器学习算法的常用评价指标。
实验环境:Jupyter Notbook
参考资料:(周志华–西瓜书) 真正例率(TPR)、假正例率(FPR)与查准率(P)、查全率(R)
一、逻辑回归基本练习
存网盘里,有需要,找我。
二、评价指标
查准率:预测为正例的实例中真实正例的比例
R = T P / ( T P + F N ) R=TP/(TP+FN) R=TP/(TP+FN)
查全率: 真实正例被预测为正例的比例
P = T P / ( T P + F P ) P=TP/(TP+FP) P=TP/(TP+FP)
F 1 − s c o r e = 2 P R / ( P + R ) = 2 T P / ( 样 例 总 数 + T P − T N ) F1-score=2PR/(P+R)=2TP/(样例总数+TP−TN) F1−score=2PR/(P+R)=2TP/(样例总数+TP−TN)
真实情况→ | 预测结果↓ | 预测结果↓ | 预测结果↓ |
---|---|---|---|
真实情况→ | 正例 | 反例 | |
真实情况→ | 正例 | TP(true positive) | FN(false negative) |
真实情况→ | 反例 | FP(false positive) | TN(true negative) |
例题:假如某大学准备招标采购一套宿舍行人目标图像识别系统,选择2家公司的产品来测试。测试手段是:从学生宿舍区一段监控视频中识别男生的人数。
实验结果如下:
(1) 算法1(产品1)的检测结果:检测出“男生”人数82人,其中78人为男生,4人其实是女生;
(2)算法2(产品2)的检测结果:检测出“男生”人数88人,其中80人为男生,8人其实是女生;
(3)经过人工检测,视频中实际准确的总人数为100人,其中男生80人,女生20人。
请问算法1和算法2的“查准率”“查全率”“F1-score”等分别是多少?你认为哪个更优秀?
那么该题正例为男,反例为女,表格应为:
算法1
真实情况→ | 预测结果↓ | 预测结果↓ | 预测结果↓ |
---|---|---|---|
真实情况→ | 男 | 女 | |
真实情况→ | 男 | 78 | 2 |
真实情况→ | 女 | 4 | 16 |
算法2
真实情况→ | 预测结果↓ | 预测结果↓ | 预测结果↓ |
---|---|---|---|
真实情况→ | 男 | 女 | |
真实情况→ | 男 | 80 | 0 |
真实情况→ | 女 | 8 | 12 |
所以,
算法1,查准率:0.975,查全率:0.9512,F1-score:0.963
算法2,查准率:1,查全率:0.91,F1-score:0.952
依据F1-score评估,算法1要好一些。