1.交叉验证
1.1 基本概念
交叉验证的基本思想是将数据集分割成N份,依次使用其中1份作为测试集,其他N1份整合到一起作为训练集,将训练好的模型用于测试集上,以得到模型好坏的判断或估计值,可以得到N个这样的值。交叉验证通常用于估计模型的误差,这里将N个对应的误差求平均作为对模型误差的估计。也可以根据这N个值,选岀拟合效果最好的模型,对应模型的参数也被认为是最优或接近最优的,因此交叉验证可以用来辅助确定参数。
1.2 代码实现
#本函数实现对样本的分割
#df:data.frame对象
#k:分割数量
#return:带有I_kvalue属性的完整数据集
#注意sample函数中的参数默认是“对位”的sample(x=x,size,replace=TRUE,prob=c(0.4,0.6))分别是数据集、尺寸、是否可重复、抽取的概率
sampleSplit <- function(df,k)
{
df$I_kvalue <- sample(1+((1:dim(df)[1])%%k),dim(df)[1]) # dim(iris):150 5 dim(df)[1]=5
return(df)
}
out=sampleSplit(iris,k=10)
table(out$I_kvalue)
#table是其中的数出现的次数
##
## 1 2 3 4 5 6 7 8 9 10
## 15 15 15