在有监督(supervise)的机器学习中,数据集常被分成2~3个,即:训练集(train set) 验证集(validation set) 测试集(test set)。
训练样本和测试样本
训练样本的目的是 数学模型的参数,经过训练之后,可以认为你的模型系统确立了下来。
一般训练样本和测试样本相互独立,使用不同的数据。
training set
是用来训练模型或确定模型参数的,如ANN中权值等;
validation set
是用来做模型选择(model selection),即做模型的最终优化及确定的,如ANN的结构;
##test set
则纯粹是为了测试已经训练好的模型的推广能力。当然,test set这并不能保证模型的正确性,他只是说相似的数据用此模型会得出相似的结果。
应用
一个典型的划分是训练集占总样本的50%,而其它各占25%,三部分都是从样本中随机抽取。
样本少的时候,上面的划分就不合适了。常用的是留少部分做测试集。然后对其余N个样本采用K折交叉验证法。就是将样本打乱,然后均匀分成K份,轮流选择其中K-1份训练,剩余的一份做验证,计算预测误差平方和,最后把K次的预测误差平方和再做平均作为选择最优模型结构的依据。特别的K取N,就是留一法(leave one out)。
但实际应用中,一般只将数据集分成两类,即training set 和test set,大多数文章并不涉及validation set。