训练集、验证集、测试集
训练集用来训练模型,验证集用来选择模型,测试集用来最终对学习方法的评估。该3个数据集应该独立同分布。
当数据不足时,采用交叉验证的方法。
简单交叉验证
随机将数据分成两个部分,一部分作为训练集,一部分作为训练集,一部分作为测试集。用训练集训练各种模型,用测试集选出测试误差最小的模型。
S折交叉验证
应用最多。随机将数据集切分为S个互不相交、大小相同的子集。用S-1个子集的数据训练模型,利用余下的子集测试模型。将这一过程对可能的S中选择重复进行。最后选出S次测评中平均测试误差最小的模型。
留一交叉验证
S折交叉验证的特殊情况,S=N(数据集的容量)
生成模型与判别模型
生成模型
原理上由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型。之所以被称为生成模型,是因为模型表示了给定输入X与输出Y的生成关系。学习收敛速度更快,当样本容量增加时,学到的模型可以更快地收敛于真实模型。当存在隐变量时,仍然可以用这种方法。典型地生成模型有:朴素贝叶斯法和隐马尔可夫模型。
判别模型
由数据直接学习条件概率分布P(Y|X)作为预测模型。直接面对预测,学习的准确率会更高。并且由于直接学习条件概率分布P(Y|X),对数据进行某种程度的抽象,定义特征并使用特征,因此可以简化学习问题。典型模型有:K近邻法、感知机等