R-数据分割(附代码)

在数据分析建模中,通常需要将数据分为训练集和测试集。本文介绍了在R中如何对纯数值型数据进行随机抽样分割以及含有因子类型数据的分层抽样分割,确保测试集包含所有因子水平,以避免预测错误。讨论了当存在多列因子变量时可能遇到的问题,并邀请读者提供解决方案。
摘要由CSDN通过智能技术生成

在对数据进行建模的过程中,为了评估模型预测准确性。需要将原始数据划分成训练集和测试集两部分(若数据量足够大,也可以划分为训练集,验证集和测试集三部分)。其中训练集用于训练模型(学习器),测试集用于评估模型优劣性。本文总结了几种数据分割的方法,供大家交流学习。

测试集与训练集的比例没有统一规定,一般视样本量的多少训练集与测试集划分比例为3:1-4:1。
这里我按数据类型是否包含因子类型分成两种类型讨论。这是因为含有因子变量的数据需要分层抽样才能保证训练集和测试集中都含有该因子的所有水平。如果训练集中含有某水平,测试集中不含有该水平,那么预测的时候就会出错。

1.纯数值型数据类型的分割-随机采样

纯数值型数据类型分割时可以采用随机抽样进行分割。这里我们采用R自带的iris数据集。

#加载数据
data(iris)
head(iris)
#去掉Species项,因为该项为因子型
iris.removeSpecies=iris[,!names(iris)%in%c("Species")]

此图为了展示iris部分全貌,没有去掉Species项,不要弄错了。
iris数据集概貌
方法一:

#有放回的从x中(即1和2)选择size个数据,选择1的概率为0.8,选择2的概率为0.2,
#并返回由1,2组成的向量
ince=sample(x=2,size=nrow(iris.removeSpecies),replace=TRUE,prob=c(0.8,0.2))
table(ince)
trainset
  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值