转载自:《数据挖掘:实用机器学习技术》
在使用分类算法的时候,通常需要去验证分类算法的准确性。
最简单常用的方法就是将数据划分成三部分:训练集,验证集,测试集。训练集用于创建分类器,验证集用于优化或调整分类器的参数,而测试集用于计算优化的分类器的误差率。一旦误差率确定,就可以将测试集合并到训练集中,将由此产生的新分类器用于实践。
上述方法在对于大数据集的时候可以采用,然而,如果数据集不是很大,那么可以考虑将数据划分为训练集和测试集。实践中,一般使用2/3的数据测试,1/3的数据验证。
然而,有可能用于训练的数据不具代表性。比如分类器将数据分成两个类,而我们划分的测试集恰巧只包含了一个类的数据,而测试集包含了另一个类的数据,显然,这种情况下,一方面分类器有可能会过度拟合,另一方面,对于另一个类由于缺少训练而无法判断。对于这种问题,最简单的方法就是,随机划分训练集和测试集,并进行多次测试。最后将每次迭代的误差率求平均以得到最终的误差率。
一种更为常见的统计学验证方法是,使用交叉验证。它先将数据分为几拆,以3折为例,就是将数据平均分成3份。然后每次取3份中的2份做训练,剩下的1份做测试,这样重复3次。即三折交叉验证。实践中,10折交叉验证被认为是标准方法。