机器学习预备知识

来源:互联网 发布:燕郊淘宝摄影棚 编辑:程序博客网 时间:2024/05/16 10:50

机器学习预备知识

尚不能完全理解一些概念的意义,所以未补全相关内容。待实践体会后补全。

关键概念

  • 错误率(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次,每次取出的样本都会被放回,这样有部分样本会被重复采样,也会有数据始终不被采样。始终不被采样的数据占

limm(11m)m1e0.368

这样1/3的数据始终没被采样到,则把这部分数据作为测试集。

该方法在数据集较小、难以有效划分训练集和测试集时很有用。除此以外,留出法和交叉验证更有效一些。

性能评估(performance measure)

均方误差(mean squared error):E(f;D)=1mni=1(f(xi)yi))2。m个样本,预测值f(xi),实际值yi.

错误率:E(f;D)=1mni=1(f(xiyi))

查准率:检索出的信息有多大比例是用户感兴趣的。P=TP/(TP+FP)

查全率:用户感兴趣的有多少被检索出来了。R=TP/(TP+FN)

分类结果混淆矩阵

真实情况 正例 反例 正例 TP真正例 FN假正例 反例 FP假正例 TN真反例

ROC与AUC

代价敏感错误率和代价曲线

比较检验

评估不同模型的效果优劣。

  • 假设检验
  • 交叉验证t检验
  • McNemar检验
  • Friedman检验和Nemenyi后续检验
原创粉丝点击