交叉验证 cross validation
https://zhuanlan.zhihu.com/p/24825503?refer=rdatamining
假设有个未知模型具有一个或多个待定的参数,且有一个数据集能够反映该模型的特征属性(训练集)。适应的过程是对模型的参数进行调整,以使模型尽可能反映训练集的特征。如果从同一个训练样本中选择独立的样本作为验证集合,当模型因训练集过小或参数不合适而产生过拟合时,验证集的测试予以反映。 交叉验证是一种预测模型拟合性能的方法。
在机器学习里,通常来说我们不能将全部用于数据训练模型,否则我们将没有数据集对该模型进行验证,从而评估我们的模型的预测效果。
为了解决这一问题,有如下常用的方法:
第一种是最简单的,也是很容易就想到的。我们可以把整个数据集分成两部分,一部分用于训练,一部分用于验证,这也就是我们经常提到的训练集(training set)和测试集(test set)。
不过,这个简单的方法存在两个弊端。
1.最终模型与参数的选取将极大程度依赖于你对训练集和测试集的划分方法。如果我们的训练集和测试集的划分方法不够好,很有可能无法选择到最好的模型与参数。
2.该方法只用了部分数据进行模型的训练
我们都知道,当用于模型训练的数据量越大时,训练出来的模型通常效果会越好。所以训练集和测试集的划分意味着我们无法充分利用我们手头已有的数据,所以得到的模型效果也会受到一定的影响。
因此,后面出现了交叉验证
常用的交叉验证的方法:
1.LOOCV方法,即(Leave-one-out cross-validation).我们现在只用一个数据作为测试集,其他的数据都作为训练集,并将此步骤重复N次(N为数据集的数据数量)。
2.K-fold Cross Validation
另外一种折中的办法叫做K折交叉验证,和LOOCV的不同在于,我们每次的测试集将不再只包含一个数据,而是多个,具体数目将根据K的选取决定。比如,如果K=5,那么我们利用五折交叉验证的步骤就是:
(1)将所有数据集分成5份
(2)不重复地每次取其中一份做测试集,用其他四份做训练集训练模型,之后计算该模型在测试集上的
(3)将5次的取平均得到最后的MSE
等等,其他方法还没看
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
2021-01-26 1.26记录
2020-01-26 非线性规划、01规划
2020-01-26 线性规划模型
2020-01-26 蓝桥杯2015-省赛-C/C++-A组2题 星系炸弹