训练误差与测试误差
一般情况下,我们将数据集分为两大类:训练集和测试集。(有的时候分成三部分:训练集、验证集、测试集)。
训练误差是指模型在训练集上的误差,反映的是模型的学习能力。
训练误差是模型关于 训练数据集的平均损失:
测试误差是模型关于测试数据集的平均损失:
过拟合
如果一味追求提高对训练数据的预侧能力,所选模型的复杂度则往往会比真模型更高。这种现象称为过拟合(over-fitting)。过拟合是指学习时选择的模型对己知数据(训练数据集中的数据)预测得很好,但对未知数据(测试数据集中的数据)预测得很差的现象。
上面的例子是,根据数据分布拟合多项式模型,M代表模型的多项式次数,我们可以看到M=0和M=1的时候,模型的学习和预测能力都不好,而M=9的时候,模型的学习能力很好(几乎都学会了,也就是说拟合出的多项式模型,可以通过每个训练数据样本点),但是它的预测能力很差!并且模型太复杂!而当M=3的时候,模型的学习能力和预测能力都是比较好的。(从图图像上直观的看到是,预测出的曲线模型和真实的曲线模型之间拟合度)。
训练误差和测试误差与模型复杂度之间的关系
模型的选择方法:正则化和交叉验证
正则化是结构风险最小化策略的实现:
上式第二项是正则化项;
正则化项可以有不同形式,回归问题中,损失函数是平方损失,正则化项可以是参数向量的L2范数:
正则化项可以是参数向量的L1范数:
L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,因此可以用于特征选择
L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合
交叉验证
重复地使用数据,把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择.。
简单交叉验证
首先随机地将己给数据分为两部分,一部分作为训练集,另一部分作为测试集;然后用训练集在各种条件下(例如,不同的参数个数)训练模型,从而得到不同的模型;在测试集上评价各个模型的测试误差,选出测试误差最小的模型.
k-折交叉脸证(S-fold cross validation)
首先随机地将已给数据切分为S个互不相交的大小相同的子集;然后利用S-1个子集的数据训练模型,利用余下的子集测试模型;将这一过程对可能的S种选择重复进行;最后选出S次评测中平均侧试误差最小的模型.
留一文叉验证 (leave-one-out cross validation)
k-折交叉验证的特殊情形是k=N,N是给定数据集的容量
生成模型和判别模型
监督学习方法又可以分为生成方法(generative approach)和判别方法(discriminative approach).所学到的模型分别称为生成模型(geuemtive model)和判别模型(discriminative model)。生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(YIX)作为预测的模型,即生成模型。
这样的方法之所以称为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系.典型的生成模型有:朴素贝叶斯法和隐马尔可夫模型。
判别方法由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型.判别方法关心的是对给定的输入X,应该预测什么样的输出Y.典型的判别模型包括k近邻法、感知机、决策树、逻辑斯谛回归模型、最大嫡模型、支持向量机、提升方法和条件随机场等。
给定输入X,生成模型不能直接预测出输出的y,需要计算之后,再比较(或者求出的是各种输出可能性的概率值,最大作为最终的求解结果),而判别模型可以直接给出预测结果y,(利用判断规则或者方法)
生成方法的特点
1、生成方法可以还原出联合概率分布P(X,Y),而判别方法则不能;
2、生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快地收敛于真实模型;
3、当存在隐变量时,仍可以用生成方法学习,此时判别方法就不能用。判别方法的特点:
1、直接学习的是条件概率P(Y|X)或决策函数f(X),直接面对预测,往往学习的准确率更高;
2、由于直接学习P(Y|X)或f(X),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题.TP(True Positive)——将正类预测为正类数(d);
FN(False Negative)——将正类预测为负类数(c);
FP(False Positive)——将负类预测为正类数(b):
TN(True Negative)——将负类预测为负类数(a).
精确率 P(Positive)=TP/(TP+FP)=d/(d+b)
召回率R(Positive)=TP/(TP+FN)=d/(d+c)
F1(精确率和召回率的调和均值)
F1(Positive)=(2*P*R)/(P+R)