交叉验证的方法汇总

交叉验证的方法

  1. 留一验证

    • 解释:

      只从可用的数据集中保留一个数据点,并根据其余数据训练模型。此过程对每个数据点进行迭代,比如有n个数据点,就要重复交叉验证n次。例如下图,一共10个数据,就交叉验证十次
      • 图示如下:

      交叉验证的方法汇总_第1张图片
      • 优点

        • 适合数据集量级较小
        • 因为利用了所有的数据点,因此偏差比较低
      • 缺点

        • 因为重复执行验证,执行时间比较长
        • 因为是数据点进行验证,如果数据点是离群值,那么模型的准确度就会大大受到影响
  2. K折交叉验证

    1.解释:

    进行多次train_test_split划分;每次划分时,在不同的数据集上进行训练、测试评估,从而得出一个评价结果;如果是5折交叉验证,意思就是在原始数据集上,进行5次划分,每次划分进行一次训练、评估,最后得到5次划分后的评估结果,一般在这几次评估结果上取平均得到最后的评分

    • 图示如下:

    交叉验证的方法汇总_第2张图片

    1. 优点

      1. 适合数据集量级比较大
      2. 提高模型的准确度
      3. 对数据的使用率较高
    2. 缺点

      • 因为是对数据随机均等划分,不适合包含不同类别的数据集,例:(abcde各占20%),抽取出来的也正好是按照类别划分的5类,第一折全是A,第二折全是B……这样就会导致,模型学习到测试集中数据的特点,用BCDE训练的模型去测试A类数据、ACDE的模型测试B类数据,这样准确率就会很低
  3. 分层交叉验证

    • 解释:

      分层是重新将数据排列组合,使得每一折都能比较好地代表整体
      例:在一个二分类问题上,原始数据一共有两类(F和M),F:M的数据量比例大概是 1:3;划分了5折,每一折中F和M的比例都保持和原数据一致(1:3)
      • 图示如下:

        交叉验证的方法汇总_第3张图片

      • 优点

        • 避免了随机划分可能产生的的情况,像是一折全是F,其他3折都是M
      • 缺点

        • 因为重复执行验证,执行时间比较长
  4. 重复交叉验证

    • 解释:

      如果训练集不能很好地代表整个样本总体,分层交叉验证就没有意义了。这时候,可以使用重复交叉验证
  5. 对抗交叉验证

    • 解释:

      根据特征分布创建一个分类模型,以检查训练集和测试集之间的相似程度

      • 优点

        • 使验证策略在训练集和测试集高度不同的情况下更加可靠
      • 缺点

        • 一旦测试集的分布发生变化,验证集可能不再适合评估模型
  6. 时间序列交叉验证

    • 解释:

      对于时间序列的数据集,不能像上述方法一样随机地划分验证集。为了解决时间序列的预测问题,可以尝试时间序列交叉验证:采用正向链接的策略,即按照时间顺序划分每一折的数据集
      例: 我们有一个时间序列,表示在n年内消费者对某一产品的年需求量
      我们逐步选择新的训练集和测试集。我们从一个最小的训练集开始(这个训练集具有拟合模型所需的最少观测数)逐步地,每次都会更换训练集和测试集。在大多数情况下,不必一个个点向前移动,可以设置一次跨5个点/10个点。在回归问题中,可以使用以下代码执行交叉验证
      • 图示如下:

        交叉验证的方法汇总_第4张图片

你可能感兴趣的:(机器学习,大数据)