zoukankan      html  css  js  c++  java
  • R语言实现分层抽样(Stratified Sampling)以iris数据集为例

    R语言实现分层抽样(Stratified Sampling)以iris数据集为例

    1.观察数据集

    head(iris)

     
    选取数据集中前6个数据,我们可以看出iris数据集一共有5个字段。

    dim(iris)

     
    iris数据集一共有150条数据,5个字段

    summary(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)

     
    观察训练集和测试集的字段和数据数目。符合我们的抽样预期。

    head(data_train);head(data_test)

     
    观察训练集和测试集的前几条数据

    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")

    保存数据集

  • 相关阅读:
    第09组 Beta冲刺(2/5)
    第09组 Beta冲刺(3/5)
    第09组 Beta冲刺(4/5)
    第09组 Beta冲刺(5/5)
    第09组 Beta冲刺(1/5)
    SDN课程阅读作业(2)
    C语言I作业07
    C语言I博客作业05
    C语言I博客作业04
    C语言I博客作业03
  • 原文地址:https://www.cnblogs.com/amengduo/p/9586995.html
Copyright © 2011-2022 走看看