李宏毅机器学习课程笔记-2.4交叉验证

交叉验证(Cross Validation)

在机器学习中,通常不能将全部数据用于模型训练,否则将没有数据集可以用来评估模型。

The Validation Set Approach

  • 定义

    将数据集划分成训练集(Training Set)和测试集(Test Set)两部分。

  • 缺点

    这种方法的缺点是依赖于训练集和测试集的划分方法,并且只用了部分数据进行模型的训练。

LOOCV(Leave One Out Cross Validation)

  • 定义

    假设数据集中有N个数据,取其中1个数据作为测试集,将剩下的N-1个数据作为训练集,这样重复N次就得到N个模型以及N个误差值,最终使用这N个误差值的平均值评估该模型。

  • 优点

    该方法不受训练集和测试集划分方法的影响,因为每个数据都单独做过测试集;同时该方法用了N-1个数据训练模型,也几乎用到了所有的数据,保证了模型的Bias更小。

  • 缺点

    该方法的缺点是计算量过大,是The Validation Set Approach耗时的N-1倍。

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

  • 定义

    该方法是LOOCV的折中,即将数据集分成K份。

  • 如何选取K的值

    K的选取是一个Bias和Variance的trade-off。一般选择K=5或10。

    K越大,每次训练时训练集的数据量就越大,则Bias越小;但每次训练时的训练集之间的相关性越大(考虑最极端的情况K=N,也就是LOOCV,每次训练使用的数据几乎是一样的),这种大相关性会导致最终的误差具有更大的Variance。


Github(github.com):@chouxianyu

Github Pages(github.io):@臭咸鱼

知乎(zhihu.com):@臭咸鱼

博客园(cnblogs.com):@臭咸鱼

B站(bilibili.com):@绝版臭咸鱼

微信公众号:@臭咸鱼

转载请注明出处,欢迎讨论和交流!