R语言实现分层抽样(Stratified Sampling)以iris数据集为例
R语言实现分层抽样(Stratified
Sampling)以iris数据集为例
1.观察数据集
head(iris)
Sampling)以iris数据集为例">
选取数据集中前6个数据,我们可以看出iris数据集一共有5个字段。
dim(iris)
Sampling)以iris数据集为例">
iris数据集一共有150条数据,5个字段
summary(iris)
Sampling)以iris数据集为例">
观察各个变量的内容,可以看出前四个变量(Sepal.Length Sepal.Width Petal.Length
Petal.Width)都是定量变量,而最后一个(Species)是定性变量,我们将依据最后一个变量作为分层抽样的依据。
library(sampling)
载入分层抽样的包sampling
n=round(3/5*nrow(iris)/3)
计算每一个种类的抽样数目。这里我们按照每种“Species”抽取3/5个样本进行抽样。
sub_train=strata(iris,stratanames=("Species"),size=rep(n,3),method="srswor")
head(sub_train)
stratanames参数是抽样依据的变量,size参数是每个种类抽样的数目,这里我们用上一步计算出来的n作为抽样数目,method是抽样方法,我们选择srswor。
data_train=iris[sub_train$ID_unit,]
data_test=iris[-sub_train$ID_unit,]
将抽样结果分别定义为训练集(data_train)和测试集(data_test)。
dim(data_train);dim(data_test)
Sampling)以iris数据集为例">
观察训练集和测试集的字段和数据数目。符合我们的抽样预期。
head(data_train);head(data_test)
Sampling)以iris数据集为例">
观察训练集和测试集的前几条数据。
data_train;data_test
查看总的抽样结果,这里数据量太大不再给出。
write.csv(data_train,"C:/Users/cnrozh/Desktop/iris_data_train.csv")
write.csv(data_test,"C:/Users/cnrozh/Desktop/iris_data_test.csv")
保存数据集
最新文章
- Elasticsearch 动态映射——自动检测
- spring的事务操作
- Android --时间控件的使用
- HDU 2665 &;&; POJ 2104(主席树)
- GNU iconv
- Markdown編輯器
- Markdown 入门教程
- linux下如何使用vnstat查看服务器带宽流量统计
- TreeView简单的动态加载数据
- C语言pow()函数的计算精度问题
- MySql5.7多实例配置教程
- 小L的试卷
- Xamarin.Android 使用SoundPool进行音频播放
- 自动化发布-GitLab WEB Hooks 配置
- 【转】VMware虚拟机三种网络模式超详解
- Unity搭建简单的图片服务器
- leetcode-867-Transpose Matrix(矩阵由按行存储变成按列存储)
- js &; array to string
- python抓取链家房源信息(二)
- CGROUP相关知识
热门文章
- 【codeforces 500D】New Year Santa Network
- LUOGU P4113 [HEOI2012]采花
- iframe加载完成事件
- 机器学习之五 正则化的线性回归-岭回归与Lasso回归
- 深入浅出 Java Concurrency (9): 锁机制 part 4[转]
- PAT甲级——A1042 Shuffling Machine
- Webpack构建前端项目
- 用windows命令解压chm文件
- UOJ#80. 二分图最大权匹配 模板
- Luogu P1273 有线电视网(树形dp+背包)