机器学习预备知识
尚不能完全理解一些概念的意义,所以未补全相关内容。待实践体会后补全。
关键概念
- 错误率(error rate):错误分类的个数占样本总数的比例。
- 精度(accuracy):精度=1-错误率
- 训练误差(training error)/经验误差(empirical error):学习器在训练集上,实际预测输出与样本的真实输出的差异。可通过训练实验得到,往往和真实数据集有差异,所以该误差只能作为模型效果的参考。
- 泛化误差(generalization error):学习器在新样本上,实际预测输出与样本的真实输出的差异。这是评估模型效果的标准。
- 过拟合(overfitting):把训练样本独有的特征,当做了所有潜在样本的特征,这样训练出来的模型,就会产生过拟合现象。学习能力过于“强”。
- 欠拟合(underfitting):与过拟合相反。是学习规律能力比较弱的表现。
模型评估方法
评估模型的好坏,主要是使用训练集数据进行模型训练,以及使用测试集进行泛化误差的评估。所以,评估模型的关键就在于训练数据集与测试数据集的选择方法。
留出法(hold-out)
直接将数据集分为两个互斥的集合,一个作为训练集一个作为测试集。一般使用2/3 - 4/5的数据作为训练集。
但是一定要保证两个数据集采样的均匀性,也就是通过分层采样(stratified sampling)达到各类数据分布的一致性,也就是说不能让某一特征的数据在训练集过于多,而在测试集过于少。
同时,为了保证结论更加可靠,一般采用多次随机划分、重复试验取平均值作为最终结果。
缺陷:测试样本集一般偏小,可能会因为训练样本规模不足导致偏差。
交叉验证法(cross validation)
将数据集划分为大小相似的k个互斥子集,每个子集都要通过分层采样得到,即保证数据分布的一致性。选择其中的k-1个子集作为训练集,剩下的一个作为测试集,这样排列组合可以进行k次训练和测试。
同样,一般也需要进行多次划分来减小误差。一般进行10次划分,每次都把数据集划分为10个子集,这就称为“10次10折交叉验证”。其结果一般认为比较精确。
注意,k的不同选择会影响结果,所以可以进行多次不同k值选择。
缺陷:数据集比较大时,计算代价较高。
自助法(bootstrap sampling)
从数据集D中随机采用m次,每次取出的样本都会被放回,这样有部分样本会被重复采样,也会有数据始终不被采样。始终不被采样的数据占
这样1/3的数据始终没被采样到,则把这部分数据作为测试集。
该方法在数据集较小、难以有效划分训练集和测试集时很有用。除此以外,留出法和交叉验证更有效一些。
性能评估(performance measure)
均方误差(mean squared error): E(f;D)=1m∑ni=1(f(xi)−yi))2 。m个样本,预测值 f(xi) ,实际值 yi .
错误率: E(f;D)=1m∑ni=1∏(f(xi≠yi))
查准率:检索出的信息有多大比例是用户感兴趣的。P=TP/(TP+FP)
查全率:用户感兴趣的有多少被检索出来了。R=TP/(TP+FN)
分类结果混淆矩阵
真实情况 | 正例 | 反例 |
---|---|---|
正例 | TP真正例 | FN假正例 |
反例 | FP假正例 | TN真反例 |
ROC与AUC
代价敏感错误率和代价曲线
比较检验
评估不同模型的效果优劣。
- 假设检验
- 交叉验证t检验
- McNemar检验
- Friedman检验和Nemenyi后续检验