机器学习之交叉验证法

交叉验证的定义

顾名思义,把得到的数据进行切分,一部分为训练集,剩下的为测试集,训练集用来训练模型,测试集来评估模型的好坏。由于可以重复使用数据进行改变数据集中训练集和测试集的百分比进行训练,得到多组不同的训练集测试集,因此训练集和测试集的数据在不同的划分次数中可能出现来交叉使用,因此称为交叉验证。

交叉验证作用

为了得到可靠稳定的模型,机器学习中的交叉验证主要用于在多个模型(不同种类模型或同一种类不同超参组合的模型下)挑选出解决对应的问题下表现最好的模型即模型选择(model selection),交叉验证英文名 Cross validation简称CV。

交叉验证具体有哪几类?

根据划分的方法不同,交叉验证分为下面三种:

第一种是简单交叉验证,首先,我们随机的将样本数据随机的分为两部分,然后用训练集来训练模型,在测试集上验证模型及参数。紧接着,我们再把样本打乱,重新再随机切割样本重新选择训练集和测试集,继续训练数据和检验模型,最后选择出损失函数评估最优的模型和参数。

第二种是K折交叉验证(K-Folder C),这种方法与前者大同小异,K折交叉验证把样本数据随机分为K份,每次随机的选择K-1份作为训练集,剩下的1份作为测试集。当这一轮完成后,重新随机选择K-1份来训练数据,进行多次循环后(次数小于K),选择损失函数评估最优的模型和参数。

第三种是留一交叉验证(Leave-one-out CV),这种方法是K折交叉验证方法的特例,此时K值等于样本数N ,这样对于N个样本,每次选择N-1个样本训练模型,留下一个样本预测模型的好坏。这个方法主要应用于样本量非常少的情况下。

交叉验证的API

https://scikit-learn.org/stable/modules/cross_validation.html

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