吴恩达机器学习教程学习笔记 (9/16)
吴恩达教授(Andrew Ng)的机器学习可以说是一门非常重视ML理论基础的课程,做做一些简单的笔记加上个人的理解。本笔记根据吴恩达的课程顺序,以每章内容作为节点进行记录。(共18章,其中第3章“线性代数回顾”与第5章“Octava教程”的笔记就不总结了)
第十一章 机器学习系统的设计(Machine Learning System Design)
构建一个学习算法的推荐方法为:
1.从一个简单的能快速实现的算法开始,实现该算法并用交叉验证集数据测试这个算法;
2.绘制学习曲线,决定是增加更多数据,或者添加更多特征,还是其他选择;
3.进行误差分析:人工检查交叉验证集中我们算法中产生预测误差的实例,看看这些实例是否有某种系统化的趋势。
1、类偏斜的误差度量
例如我们希望用算法来预测癌症是否是恶性的,在我们的训练集中,只有0.5%的实例是恶性肿瘤。假设我们编写一个非学习而来的算法,在所有情况下都预测肿瘤是良性的,那么误差只有0.5%。然而我们通过训练而得到的神经网络算法却有1%的误差。这时,误差的大小是不能视为评判算法效果的依据的。
查准率(Precision)和查全率(Recall) 我们将算法预测的结果分成四种情况:
1.正确肯定(True Positive,TP):预测为真,实际为真
2.正确否定(True Negative,TN):预测为假,实际为假
3.错误肯定(False Positive,FP):预测为真,实际为假
4.错误否定(False Negative,FN):预测为假,实际为真
则:查准率=TP/(TP+FP)。例,在所有我们预测有恶性肿瘤的病人中,实际上有恶性肿瘤的病人的百分比,越高越好。
查全率=TP/(TP+FN)。例,在所有实际上有恶性肿瘤的病人中,成功预测有恶性肿瘤的病人的百分比,越高越好。
这样,对于我们刚才那个总是预测病人肿瘤为良性的算法,其查全率是0。
预测值 | 预测值 | ||
---|---|---|---|
混淆矩阵 | Positive | Negative | |
实际值 | Positive | TP | FN |
实际值 | Negative | FP | TN |
查准率(Precision)=TP/(TP+FP) 例,在所有我们预测有恶性肿瘤的病人中,实际上有恶性肿瘤的病人的百分比,越高越好。
查全率(Recall)=TP/(TP+FN)例,在所有实际上有恶性肿瘤的病人中,成功预测有恶性肿瘤的病人的百分比,越高越好。
如果我们希望只在非常确信的情况下预测为真(肿瘤为恶性),即我们希望更高的查准率,我们可以使用比0.5更大的阀值,如0.7,0.9。这样做我们会减少错误预测病人为恶性肿瘤的情况,同时却会增加未能成功预测肿瘤为恶性的情况。
如果我们希望提高查全率,尽可能地让所有有可能是恶性肿瘤的病人都得到进一步地检查、诊断,我们可以使用比0.5更小的阀值,如0.3。
我们可以将不同阀值情况下,查全率与查准率的关系绘制成图表,曲线的形状根据数据的不同而不同:
我们希望有一个帮助我们选择这个阀值的方法。一种方法是计算F1 值(F1 Score),其计算公式为:
P
=
T
P
/
(
T
P
+
F
P
)
P=TP/(TP+FP)
P=TP/(TP+FP)
R
=
T
P
/
(
T
P
+
F
N
)
R=TP/(TP+FN)
R=TP/(TP+FN)
F
1
S
c
o
r
e
=
2
∗
P
R
/
P
+
R
F1_{Score}=2*PR/P+R
F1Score=2∗PR/P+R我们选择使得F1值最高的阀值。
感谢黄海广博士团队的翻译和笔记
END