分类器

我们把每个数据集分成两个子集

  • 一个用于构建分类器,该数据集称为训练集(training set)
  • 另一个数据集用于评估分类器,该数据集称为测试集(test set)
    训练集和测试集是数据挖掘中的常用术语。

10折交叉验证(10-fold Cross Validation)

2折交叉验证

我们将数据划分成2部分,每次利用2/3的数据训练而在其余1/3的数据上进行测试。因此,整个过程看起来如下:

  • 第一次迭代 使用Part 1和Part 2训练,使用Part 3测试
  • 第二次迭代 使用Part 1和Part 3训练,使用Part 2测试
    最后我们将两次的结果进行平均。
    但是,这种方法的问题在于我们每次只使用了一半数据进行训练。然而,我们可以通过增加划分的份数来解决这个问题。

3折交叉验证

我们将数据划分成3部分,每次利用2/3的数据训练而在其余1/3的数据上进行测试。因此,整个过程看起来如下:

  • 第一次迭代 使用Part 1和Part 2训练,使用Part 3测试
  • 第二次迭代 使用Part 1和Part 3训练,使用Part 2测试
  • 第三次迭代 使用Part 2和Part 3训练,使用Part 1测试
    对上述结果求平均。

留一法(Leave-One-Out)

如果10折交叉验证之所以好只是因为采用了90%数据的话
那么为什么不用n折交叉验证?(n是数据集中样本的数目)

例如,如果数据集中包含1000个样本,我们可以在999个样本上训练分类器,然后在另外一个样本上测试分类器,这个过程可以重复1000次,利用这种最大可能的交叉验证次数,可能会得到更精确的分类器.

在机器学习领域,n折交叉验证(n是数据集中样本的数目)被称为留一法。我们已经提到,留一法的一个优点是每次迭代中都使用了最大可能数目的样本来训练。另一个优点是该方法具有确定性。(确定性的含义往下看)

实际生产中,10折交叉验证方法最为常见。

分类的确定性

确定性的含义,指的是使用分类算法后,每一次的执行结果是否是一致的。
比如,2折与3折交叉验证,算法每次随机分为均等分,每次均分结果如果不一致(事实上,在概率上很难一致。)那么最终结果就不一致,此时我们说分类的结果是不确定的。
如果使用n折交叉验证,因为要循环n-1次,最终的结果求平均后,结果始终是一致的,所以,我们说,分类的结果是确定性的。