没有免费午餐定理(NFL)
抛开实际背景,样本数据可由很多种分布产生,基于所有可能的分布训练后的模型,对测试样本的预测平均错误率是一样的,或者说与随机猜测没有区别。
这里考虑的是所有可能的分布,然而在实际应用中,我们会结合数据产生的背景,对分布由一个可信度非常高的假设,只会考虑一种或有限种分布。
总之,机器学习的目的不是找到一个通用的算法,而是理解数据,假定最合适的分布,再去寻找在该分布上表现最优的算法。
选择合适的模型
拿到数据以及明确学习目的后,我们需要深入了解数据,思考哪一类的知识能够很好地表示数据。进而选择合适的模型。例如:
- 如果有足够的知识很好地表征样本之间的相似性,不妨选择k近邻这类instance based模型
- 如果足够了解概率依赖机制,不妨选择概率图模型
- 如果充分了解每个类的先决条件,不妨选择决策树这类"if … then …"规则模型
bias–variance tradeoff
机器学习模型的error(误差)要同时考虑bias(偏差)以及variance(方差)。
bias:模型欠拟合导致预测结果与实际结果误差较大。
variance:模型过拟合,对训练数据集中的数据的波动或噪声过于敏感,错误学习了噪音样本的信息,对未知数据的预测误差波动较大。
通常,表示能力弱(假设空间小)的学习器bias较大(例如线性分类器),反之,variance较大(例如决策树)
过拟合的原因及应对方法
要找出过拟合的原因,可以将误差分解为bias以及variance,再进一步分析造成variance的原因。
列举一些情形:
- 添加正则化项可以有效防止过拟合
- 交叉检验能够很好防止过拟合,但是若训练参数过多,也可能会过拟合
- 数据量较小时,基于错误假设的学习器要比弱正确的学习器要好,因为弱正确的学习器需要更多数据防止过拟合。例如朴素贝叶斯要好于决策树
- 数据量较小时,可考虑用卡方检验模型更新前后类的分布是否有明显改变,若有明显改变则说明更新后模型合理
VC维
一个机器学习模型的 VC维代表了模型的复杂程度、学习能力以及模型分离数据集的能力。VC维越大模型越复杂。
直观定义,模型(函数集)能够分散的最大数据集的大小。
举个例子,二维线性分类器,在二维空间中能分散的数据集,最大为3。4个样本就需要两条直线才能分散。
(摘自维基百科)
二分类模型性能度量
TP(ture positive):正确预测为正类的样本数
FP(false positive):错误预测为正类的样本数
TN(true negtive):正确预测为负类的样本数
FN(false negtive):错误预测为负类的样本数
准确率(accuracy):预测正确的样本占总样本的比例
T
P
+
T
N
T
P
+
F
P
+
T
N
+
F
N
\frac{TP+TN}{TP+FP+TN+FN}
TP+FP+TN+FNTP+TN
精确率(precision):预测结果的正类中,正确预测的比例
T
P
T
P
+
F
P
\frac{TP}{TP+FP}
TP+FPTP
召回率(recall):原样本的正类中,被正确预测的比例
T
P
T
P
+
F
N
\frac{TP}{TP+FN}
TP+FNTP
附:召回率又称真正率(true positive rate, TPR)。与精确率的区别在于精确率针对预测结果,召回率针对原样本。
f1-score: 精确率以及召回率的调和平均数
F
1
=
2
1
p
r
e
c
i
s
i
o
n
+
1
r
e
c
a
l
l
=
2
∗
p
r
e
c
i
s
i
o
n
∗
r
e
c
a
l
l
p
r
e
c
i
s
i
o
n
+
r
e
c
a
l
l
F_1=\frac{2}{\frac{1}{precision}+\frac{1}{recall}}=2*\frac{precision*recall}{precision+recall}
F1=precision1+recall12=2∗precision+recallprecision∗recall
假正率(false positive rate, FPR):原样本的负类中,被错误预测为正类的比例
F
P
F
P
+
T
N
\frac{FP}{FP+TN}
FP+TNFP
附:医学领域又被称为误诊率。TPR与FPR是相互制约的
错误发现率(false discovery rate, FDR): 预测结果为正类中, 被错误预测为正类的比例 F P F P + T P \frac{FP}{FP+TP} FP+TPFP
从假设检验的角度考虑:原假设(null hypothesis)为0,备择假设为1,预测为1就是拒绝原假设。
预测\实际 | 0 | 1 |
---|---|---|
1 | FP | TP |
0 | TN | FN |
KS值:衡量模型区分正负类的能力。
K
S
=
m
a
x
(
T
P
R
−
F
P
R
)
KS = max(TPR-FPR)
KS=max(TPR−FPR)
KS曲线中,横轴为阈值,KS曲线的极大值(TPR与FPR的最大差)对应的阈值即为最优阈值。
接收者操作特征曲线(receiver operating characteristic curve,ROC) 以假正率为横坐标,召回率为纵坐标,得到的曲线。二分类模型通常输出样本为正类的概率,另外设置一个阈值(比如0.5),当概率大于阈值则为正类。这样地情况下,针对不同地阈值有一对不同地假正率和召回率。阈值取得越密,ROC曲线越光滑。
(图片摘自维基百科)
ROC曲线得含义:阈值越小,正确预测为正类的样本越多,但同时将负类错误预测为正类的样本也增多,所以越靠近(1,1)。正常情况下,假正率要小于真正率(误诊情况比较少),并且模型分类性能越好曲线越靠近左上方。即曲线上最靠近(0,1)得点对应得阈值应该作为最佳阈值。举个例子,如果一个医生毫无判断能力,将所有就医者认定为没病,那么肯定能召回所有没病的就医者,但其误诊率也必然为1,这将毫无意义。
为什么使用ROC?:ROC曲线对样本中正负类比例不敏感,即如果选取的样本原本就存在正负类比例失衡的情况,用其他指标会产生较大误差,而ROC曲线的趋势受影响较小。同时从ROC曲线中,可以选择出最优的概率阈值,即距离(0,1)最近点对应的阈值。
AUC (Area Under Curve): ROC曲线下的面积,是一个数值,衡量了模型的预测稳定性,值越大越容易选取出合理的概率阈值使得分类性能达到最优。其含义就是随机选取一个正类一个负类,正类预测结果P1,负类预测结果为P2,那么P1>P2的概率等于AUC。反映了分类器的排序能力,即将正类排在负类前面。如下图所示,AUC=1是完美分类器,表明至少存在一个阈值使得分类合理,AUC=0.8表明分类器需要谨慎选择阈值才能使得分类效果合理,AUC=0.5表明模型无分类预测能力。
(图片摘自参考资料)
参考资料
机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率
https://www.cnblogs.com/gczr/p/10354646.html