使用R语言fifer包进行分层采样

 

  使用R语言fifer包中的stratified()函数用来进行分层采样非常方便,但fifer包已经从CRAN存储库中删除,需要从存档中下载可用的历史版本,下载链接:Index of /src/contrib/Archive/fifer (r-project.org)icon-default.png?t=N7T8https://cran.r-project.org/src/contrib/Archive/fifer/

 

   随后下载devtools包用以辅助安装和管理R包:

install.packages("devtools")

   devtools包安装完成,然后将fifer包解压并放到R语言安装路径中的library文件夹里,随后在终端输入以下代码并修改成自己的安装路径:

devtools::install_local("C:/Program Files/R/R-4.3.2/library/fifer",force = TRUE)

  随后使用R自带的iris数据集进行测试:

iris.df <- data.frame(iris)
#建立iris的子集检索,并进行随机采样
sample.index <- sample(1:nrow(iris.df), nrow(iris) * 0.75,replace = FALSE)
#把replace设置为FALSE,这样就不会重复抽取到该列数据

在Environment栏及终端查看irisa数据与随机抽选出来的数据:

> head(iris[sample.index, ])Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
146          6.7         3.0          5.2         2.3  virginica
56           5.7         2.8          4.5         1.3 versicolor
131          7.4         2.8          6.1         1.9  virginica
65           5.6         2.9          3.6         1.3 versicolor
71           5.9         3.2          4.8         1.8 versicolor
16           5.7         4.4          1.5         0.4     setosa

 查看iris数据集的数据分布情况:

> summary(iris)Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  Median :5.800   Median :3.000   Median :4.350   Median :1.300  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  Species  setosa    :50  versicolor:50  virginica :50 

使用stratified()函数进行分层采样,针对iris数据集中方差最小的特征Sepal.Width和Petal.Width,选取70%采样:

> summary(stratified(iris, c("Sepal.Width", "Petal.Width"), 0.7))Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   Min.   :4.400   Min.   :2.000   Min.   :1.000   Min.   :0.100  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  Median :5.800   Median :3.000   Median :4.250   Median :1.300  Mean   :5.861   Mean   :3.053   Mean   :3.804   Mean   :1.222  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.125   3rd Qu.:1.800  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  Species  setosa    :37  versicolor:38  virginica :41 

最后编写函数,按照给定的随机初始数字依次选择每个第n行,用以系统采样:

> sys.sample = function(N, n) {
+     k = ceiling(N/n)
+     r = sample(1:k, 1)
+     sys.samp = seq(r, r+k*(n-1), k)
+ }
#Windows环境下的RStudio终端可以使用Shift+Enter换行
> systematic.index <- sys.sample(nrow(iris), nrow(iris) * 0.75)
> summary(iris[systematic.index, ])Sepal.Length    Sepal.Width     Petal.Length   Petal.Width  Min.   :4.300   Min.   :2.200   Min.   :1.10   Min.   :0.10  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.55   1st Qu.:0.35  Median :5.700   Median :3.000   Median :4.20   Median :1.30  Mean   :5.847   Mean   :3.051   Mean   :3.74   Mean   :1.18  3rd Qu.:6.400   3rd Qu.:3.250   3rd Qu.:5.10   3rd Qu.:1.80  Max.   :7.900   Max.   :4.400   Max.   :6.70   Max.   :2.50  NA's   :37      NA's   :37      NA's   :37     NA's   :37    Species  setosa    :25  versicolor:25  virginica :25  NA's      :37 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/465322.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EMC学习笔记(二十四)降低EMI的PCB设计指南(四)

降低EMI的PCB设计指南&#xff08;四&#xff09; 1.电路板分区2.信号走线2.1 电容和电感串扰2.2 天线2.3 端接和传输线2.4输入端的阻抗匹配 tips&#xff1a;资料主要来自网络&#xff0c;仅供学习使用。 1.电路板分区 电路板分区与电路板平面规划具有相同的基本含义&#x…

Vue3中Setup概述和使用(三)

一、引入Setup 1、Person.Vue 与Vue3编写简单的App组件(二) 中的区别是&#xff1a;取消data、methods等方法,而是将数据和方法定义全部放进setup中。 <template><div class"person"><h1>姓名:{{name}}</h1><h1>年龄:{{age}}</h…

UI自动刷新大法:DataBinding数据绑定

之前我们讲了DataBinding在Activity、Fragment、RecyclerView中的基础使用&#xff0c;而那些常规使用方法里&#xff0c;每当绑定的变量发生数据变化时&#xff0c;都需要ViewDataBinding重新设值才会刷新对应UI。而DataBinding通过内部实现的观察者模式来进行自动刷新UI&…

BKP寄存器与RTC实时时钟

BKP寄存器 BKP寄存器简介 BKP&#xff08;Backup Registers&#xff09;备份寄存器 BKP可用于存储用户应用程序数据。当VDD&#xff08;2.03.6V&#xff09;电源被切断&#xff0c;他们仍然由VBAT&#xff08;1.83.6V&#xff09;维持供电。当系统在待机模式下被唤醒&#xf…

数据结构~~树(2024/2/8)

目录 树 1、定义&#xff1a; 2、树的基本术语&#xff1a; 3、树的表示 树 1、定义&#xff1a; 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&…

神经网络(Nature Network)

最近接触目标检测较多&#xff0c;再此对最基本的神经网络知识进行补充&#xff0c;本博客适合想入门人工智能、其含有线性代数及高等数学基础的人群观看 1.构成 由输入层、隐藏层、输出层、激活函数、损失函数组成。 输入层&#xff1a;接收原始数据隐藏层&#xff1a;进行…

C语言函数的栈帧与销毁(面试亮点)

目录 如果你能熟练的掌握函数的栈帧与销毁在面试中是及其亮眼的加分项&#xff0c;所以我们来以实例来将解函数是如何实现栈帧与销毁的。 一. 函数栈帧 二.寄存器 三. 用例题讲解创建栈帧的过程 3.1 main 函数的反汇编代码。 第一步&#xff1a;给调用main函数的函数分配…

计算机毕业设计SSM基于的冷链食品物流信息管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; vue mybatis Maven mysql5.7或8.0等等组成&#xff0c;B…

网络安全工程师技能手册(附学习路线图)

关键词&#xff1a;网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 安全是互联网公司的生命&#xff0c;也是每位网民的基本需求。现在越来越多的人对网络安全感兴趣&#xff0c;愿意投奔到网络安全事业之中&#xff0c;这是一个很好的现象。 很多对网络安全感…

使用securecrt+xming通过x11访问ubuntu可视化程序

windows使用securecrtxming通过x11访问ubuntu可视化程序 windows机器IP&#xff1a;192.168.9.133 ubuntu-desktop20.04机器IP&#xff1a;192.168.9.190 windows下载xming并安装 按照图修改xming配置 开始->xming->Xlaunch 完成xming会在右下角后台运行 windows在…

爬虫练习——动态网页的爬取(股票和百度翻译)

动态网页也是字面意思&#xff1a;实时更新的那种 还有就是你在股票这个网站上&#xff0c;翻页。他的地址是不变的 是动态的加载&#xff0c;真正我不太清楚&#xff0c;只知道他是不变的。如果用静态网页的方法就不可行了。 静态网页的翻页&#xff0c;是网址是有规律的。 …

政安晨:梯度与导数~示例演绎《机器学习·神经网络》的高阶理解

这篇文章确实需要一定的数学基础&#xff0c;第一次接触的小伙伴可以先看一下我示例演绎这个主题的前两篇文章&#xff1a; 示例演绎机器学习中&#xff08;深度学习&#xff09;神经网络的数学基础——快速理解核心概念&#xff08;一&#xff09;&#xff1a; 政安晨&#…