本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片
机器学习 | Coursera
吴恩达机器学习系列课程_bilibili
11 机器学习系统设计
11-1 确定执行的优先级:以垃圾邮件分类为例
11-2 误差分析
- 不要在编写程序时进行过早的优化,在编写完整个系统后再根据学习曲线优化系统;先编写一个简单粗暴的算法,再根据输出的结果改进算法
- 误差分析:观察被错误分类的数据有何共同的特征(以垃圾邮件分类为例,查看被错误分类的垃圾邮件有何共同的特征)或以数值方式表示误差
- 推荐在交叉验证集上做误差分析
11-3 不对称性分类的误差评估
偏斜类问题:一个数据集中的一类数据样本比另外一类的样本少的多(比如1占样本的0.5%,而0占样本的99.5%)
在偏斜类问题中(比如患癌症占样本的0.5%,而不患癌症占样本的99.5%),假设一个算法达到了99.5%的预测准确率,这时已经只有0.5%的误差,但是如果始终预测不患癌症也有99.5%的准确率,误差也只有0.5%,这时需要用到不同的误差度量值
其中一种叫做查准率和召回率(precision recall)
- 左侧表格上方为实际的,表格左侧为预测的,1代表患癌,0代表不患癌
- 如果预测为1,实际为1,则是真阳性(True positive)
- 如果预测为1,实际为0,则是假阳性(False positive)
- 如果预测为0,实际为1,则是假阴性(False negtive)
- 如果预测为0,实际为0,则是真阴性(True negtive)
查 准 率 = 预 测 为 真 并 且 实 际 为 真 的 数 量 预 测 为 真 的 数 量 = T r u e p o s i t i v e T r u e p o s i t i v e + F a l s e p o s i t i v e 查准率=\frac{预测为真并且实际为真的数量}{预测为真的数量}=\frac{True\ positive}{True\ positive+False\ positive} 查准率=预测为真的数量预测为真并且实际为真的数量=True positive+False positiveTrue positive
召 回 率 = 预 测 为 真 并 且 实 际 为 真 的 数 量 实 际 为 真 的 数 量 = T r u e p o s i t i v e T r u e p o s i t i v e + F a l s e n e g t i v e 召回率=\frac{预测为真并且实际为真的数量}{实际为真的数量}=\frac{True\ positive}{True\ positive+False\ negtive} 召回率=实际为真的数量预测为真并且实际为真的数量=True positive+False negtiveTrue positive
两者均是越高越好
11-4 查准率和召回率的平衡
本来在超过50%概率时预测为1(即患癌),在低于50%时预测为0(即不患癌)
现在如果要在超过70%患癌可能性时才预测为患癌的话,会得到一个高查准率但低召回率的模型
如果要在超过30%患癌可能性时就预测患癌,会得到一个高召回率但低查准率的模型
- 高查准率:能不揪出来的就不揪出来
- 高召回率:能揪出来的都揪出来
通过计算查准率和召回率的平均值不能直接评估一个算法的好坏
通过
F
值
(
F
1
值
)
=
2
P
R
P
+
R
F值(F_1值)=2\frac{PR}{P+R}
F值(F1值)=2P+RPR能更好地评估一个算法的好坏(P为查准率,R为召回率)
11-5 机器学习数据
在有一个非常庞大的训练集的前提下,即使有很多的参数(训练集数量>>参数数量),也能很好地拟合数据集,不会产生过拟合现象