欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!
对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。
作者:量化小白一枚,上财研究生在读,偏向数据分析与量化投资
个人公众号:量化小白上分记
前两篇
R语言模拟:Bias Variance Trade-Off
与R语言模拟:Bias Variance Decomposition
在理论推导和模拟的基础上,对于误差分析中的偏差方差进行了分析。本文在前文的基础上,分析一种常用的估计预测误差进而可以参数优化的方法:交叉验证,并通过R语言进行模拟。K-FOLD CV
交叉验证是数据建模中一种常用方法,通过交叉验证估计预测误差并有效避免过拟合现象。简要说明CV(CROSS VALIDATION)的逻辑,最常用的是K-FOLD CV,以K = 5为例。
将整个样本集分为K份,每次取其中一份作为Validation Set,剩余四份为Trainset,用Trainset训练模型,然后计算模型在Validation set上的误差,循环k次得到k个误差后求平均,作为预测误差的估计量。
除此之外,比较常用的还有LOOCV,每次只留出一项做Validation,剩余项做Trainset。
参数优化
对于含有参数的模型,可以分析模型在不同参数值下的CV的误差,选取误差最小的参数值。
误区
ESL 7.10.2中提到应用CV的两种方法,比如对于一个包含多个自变量的分类模型,建模中包括两方面,一个是筛选出预测能力强的变量,一个是估计最佳的参数。因此有两种使用CV的方法(以下内容摘自ESL 7.10.2)
1
1.Screen the predictors: find a subset of “good” predictors that show fairly strong (univariate) correlation with the class labels
2.Using just this subset of predictors, build a multivariate classifier.
3.Use cross-valida