当前位置: 首页 > article >正文

R_机器学习——常用函数方法汇总

1.rep()

rep()是R语言中的一个函数,用于创建重复的向量或矩阵。

rep(x, times, each, length.out)
  • x:要重复的向量或矩阵。这可以是一个数字、字符、列表、因子等。
  • times:重复的次数,可以是一个整数或向量。如果是一个整数,则整个输入x会被重复这个整数次。如果是一个向量,且长度与x(经过each参数复制后)相同,则x中的每个元素会根据times向量中对应位置的值进行重复。
  • each:每个元素重复的次数,可以是一个整数或向量。如果指定,则x中的每个元素会首先根据这个参数进行重复,然后再根据timeslength.out参数进行整体复制或长度调整。
  • length.out:最终输出的长度。这是一个非负整数。当timeseachlength.out同时指定时,length.out会优先满足。如果length.out指定的长度小于实际复制后的长度,则结果会被截断;如果大于,则会根据复制规则进行填充。

  • 复制整个向量
rep(1:4, times=2)
# 输出: [1] 1 2 3 4 1 2 3 4
  • 复制每个元素
rep(1:4, each=2)
# 输出: [1] 1 1 2 2 3 3 4 4
  • 结合使用times和each
rep(1:4, each=2, times=3)
# 输出: [1] 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4
  • 指定输出长度
rep(1:4, each=2, length.out=6)
# 输出: [1] 1 1 2 2 3 3
# 注意:由于length.out=6,最后一个元素4只重复了一次。

 但其实最常用的还是直接构建一个0向量,相当于C语言中的数组来使用。

如:

x <- rep(0, ncol(df)) #创建和df列数相同的向量

2.confusionMatrix()

confusionMatrix 函数是 R 语言中 caret 包提供的一个非常有用的函数,用于计算并展示分类模型的混淆矩阵以及一系列相关的统计指标。

        这个函数对于评估分类模型的性能非常有帮助,特别是在监督学习领域。

(confusion_matrix <- confusionMatrix(prediction, factor(test$y)))
  • prediction 是一个包含模型预测结果的向量。
  • factor(test$y) 是测试集的实际标签,这里使用 factor 函数确保标签被处理为分类变量。

3.createDataPartition() 

  createDataPartition() 是 caret 包中的一个非常有用的函数,它主要用于将数据集分割为训练集和测试集。优点在于使二者具有相同分布,模型训练更加合理。

        通过分割数据,我们可以在一个独立的测试集上评估模型的性能,从而获得对模型泛化能力的更准确估计。

library(caret)
set.seed(123) # 设置随机种子以确保结果可重复
trainIndex <- createDataPartition(y, p = 0.8, list = FALSE)
trainData <- data[trainIndex,]
testData <- data[-trainIndex,]

在这个例子中:

  • y 是数据集中的目标变量(或称为标签、响应变量),它可以是分类的(如因子类型)或连续的(如数值类型)。
  • p 是训练集所占的比例,这里设置为0.8,意味着80%的数据将用于训练,剩下的20%将用于测试。
  • list 参数设置为 FALSE 表示返回一个索引向量,而不是一个列表。这样,我们可以直接使用这个索引向量来从原数据集中提取训练数据和测试数据。
  • set.seed() 函数用于设置随机种子,以确保每次运行代码时都能得到相同的分割结果。

to be continued!!!        


http://www.kler.cn/a/371550.html

相关文章:

  • Spring Boot 经典九设计模式全览
  • 基于springboot的在线投票系统,比赛实时投票平台的实现
  • Chrome和Firefox哪款浏览器的密码管理更安全
  • Python 爬虫的寻宝大冒险:如何捕获 API 数据的宝藏
  • Ubuntu20.04 更新Nvidia驱动 + 安装CUDA12.1 + cudnn8.9.7
  • MLP预售开启,革新去中心化通信生态:智能手机与AI Agent齐上阵
  • Java进阶篇设计模式之四 -----适配器模式和桥接模式
  • 会议录音转文字怎么转?有这6款视频语音转文字工具就够了!
  • 微信小程序时间弹窗——年月日时分
  • G2 基于生成对抗网络(GAN)人脸图像生成
  • Pytorch学习--神经网络--非线性激活
  • 【Unity基础】初识UI Toolkit - 运行时UI
  • 【项目复现】——DDoS-SDN Detection Project
  • Nginx + Lua + Redis:打造智能 IP 黑名单系统
  • 「Mac畅玩鸿蒙与硬件14」鸿蒙UI组件篇4 - Toggle 和 Checkbox 组件
  • Conditional DETR论文笔记
  • Java基础(4)之正则,异常与文件IO流
  • KAN原作论文github阅读(readme)
  • 深度解读GaussDB逻辑解码技术原理
  • 使用 OpenCV 进行人眼检测
  • springboot天气预报推送小程序-计算机毕业设计源码41533
  • 青少年编程与数学 02-002 Sql Server 数据库应用 15课题、备份与还原
  • C++初阶(七)--类和对象(4)
  • 临接矩阵m
  • 随机题两题
  • 开源项目-投票管理系统