目录
2 模型评估与选择
2.1 经验误差与过拟合
错误率(error rate):
E
=
a
/
m
E=a/m
E=a/m,
E
E
E为错误率,
a
a
a为样本分类错误,
m
m
m为总样本数
精度(accuracy):
A
=
1
−
a
/
m
=
1
−
E
A=1-a/m=1-E
A=1−a/m=1−E,
A
A
A为精度
训练误差(training error)或 经验误差(empirical error):学习器在训练集上的误差
泛化误差(generalization error):在新样本上的预测误差
期望:获得generalization error最小的学习器
实际:现实中不知道新样本是什么,所以只能使的empirical error 最小
问题:empirical error最小的学习器在多数情况下表现不好
过拟合(overfitting):在训练集上的表现好,在预测集中表现不好;泛化性能下降
欠拟合(underfitting):对训练样本的一般性质未学习好
造成overfitting和underfitting的原因?
- overfitting是常见情况是因为学习能力过于强大,将训练样本中不太一般的特性也学习到了
- underfitting通常是因为学习能力低下造成的
overfitting无法避免,只能缓解,为什么?
- 机器学习的问题通常是NP-hard问题,但是有效的学习算法是多项式时间内的算法。如果能彻底避免过拟合,则意经验误差最小化就能获得最优解,意味着构造性证明了P=NP,只要我们认为P!=NP,则过拟合不可避免。
2.2 评估方法
使用测试集(testing set)来测试学习机器对新样本的判别能力。
以在testing set上的testing error作为generalization error的近似。
testing set需要保证与training set保持互斥
2.2.1 留出法(hold-out)
描述:直接将training set分为两个互斥的集合。
注意事项:划分时需要保持数据分布的一致性。从sampling的角度来看是分层采样(stratified sampling)。
2.2.2 交叉验证法(cross validation)
描述:将数据集划分成k个大小相似的互斥子集。同样保证数据一致性。每次用
k
−
1
k-1
k−1个子集进行训练,用剩下的1个子集进行测试。最终结果为
k
k
k次测试结果的均值。
注意事项:稳定性和保真性取决于k的取值。故cross validation通常被称为“k折交叉验证”(k flod cross validation)。K通常取10.常用的还有5,20.
特例:留一法(Leave-One-Out,LOO)。其中k=样本大小。优点:结果较为精确。缺点:数据集较大时速度慢,时间复杂度至少为 O ( N 2 ) O(N^2) O(N2)。并不一定永远比其他方法准确。
2.2.3 自助法(bootstrap sampling)
描述:以自助采样(bootstrap sampling)为基础。有重复的从数据集中选取样本作为验证集合。其中对于选取m个则有:
lim
n
→
∞
(
1
−
1
m
)
m
↦
1
e
≈
0.368
\lim_{n \to \infty}(1-\frac{1}{m})^m \mapsto \frac{1}{e} \approx 0.368
n→∞lim(1−m1)m↦e1≈0.368
可知,大约有36.8%的样本不会被选取。
其中D/D’作为训练集。
优点:数据集小,难以划分时有用。
缺点:引入估计偏差。