R语言应用xgboost进行机器学习(1)

news2024/12/25 12:47:48

XGBoost 机器学习模型是一种高效且可扩的展的机器学习分类器,由 Chen 和 Guestrin 在 2016 年推广。XGBoost原理是是在决策树的基础上产生迭代,它以 boosting 的方式结合了多个决策树。通常创建每棵新树是为了通过梯度提升来减少先前模型的误差,误差指的是实际值和预测值之间的差异。把误差作为协变量参与下一个模型的预测,反复执行这个过程,降低出错率,直到决策树指定阈值,模型已经被训练成功。XGBoost 具有与梯度提升相同的原理,它使用提升次数、学习率、二次采样率和最大树深度来控制过度拟合并增强更好的性能.
在这里插入图片描述
在这里插入图片描述
今天我们通过R语言来演示一下xgboost进行机器学习,使用的是我们的体检数据,
我们先导入数据

library(xgboost)
bc<-read.csv("E:/r/test/demo.csv",sep=',',header=TRUE)

在这里插入图片描述
数据变量很多,我解释几个我等下要用的,HBP:是否发生高血压,结局指标,AGE:年龄,是我们的协变量,SEX:性别等。公众号回复:体检数据,可以获得数据。
我们用不到这么多变量取一部分变量来建模

bc<-bc[,c("HBP","SEX","AGE","FEV1","OCCU","COUGH","EDU")]
bc <- na.omit(bc)
先把分类变量转成因子
bc$HBP<-as.factor(bc$HBP)
bc$SEX<-as.factor(bc$SEX)
bc$OCCU<-as.factor(bc$OCCU)
bc$EDU<-as.factor(bc$EDU)

建模前要构建全是数字矩阵,分类变量要转成哑变量矩阵,可以使用XGBoost自带的xgb.DMatrix 函数来构建,

x = model.matrix(HBP~.,bc)[,-1]
data_train <- xgb.DMatrix(x , label =as.numeric(bc$HBP))

构建好矩阵后就可以建模了,param <- list(objective = “reg:squarederror”)为默认的

param <- list(objective = "reg:squarederror")
HR_xgb_model <- xgb.train(param, data_train, nrounds = 50)
HR_xgb_model

在这里插入图片描述
上图显示的是模型的一些基本参数,niter 为迭代次数, nfeatures为训练数据中的特征数量,nrounds提升迭代的最大次数,模型建立好后,我们可以使用DALEX包的explain函数进行解析
因为我们做的是逻辑回归,所以要建立两个解析式

library("DALEX")

predict_logit <- function(model, x) {
  raw_x <- predict(model, x)
  exp(raw_x)/(1 + exp(raw_x))
}

logit <- function(x) {
  exp(x)/(1+exp(x))
}

进行解析

explainer_xgb <- explain(HR_xgb_model,
                         data = x,
                         y = as.numeric(bc$HBP),
                         predict_function = predict_logit,
                         link = logit,
                         label = "xgboost")
explainer_xgb

在这里插入图片描述
使用model_profile函数进行变量分析

sv_xgb_satisfaction_level <-DALEX::model_profile(explainer_xgb,
                                               type = "partial")
head(sv_xgb_satisfaction_level)
plot(sv_xgb_satisfaction_level)

在这里插入图片描述
可以看到age和fev1这两个变量和结局是相关的
我们导入breakDown包进一步分析

library("breakDown")
library(ggplot2)
nobs <- model_martix_train[1L, , drop = FALSE]

explain_2 <- broken(HR_xgb_model, new_observation = nobs, 
                    data = model_martix_train)
explain_2

在这里插入图片描述
explain_2表示了每个变量对结局影响的权重,下图则以图示说明每个变量是怎么样对模型进行影响的
在这里插入图片描述
我们还可以进行进行模型指标重要行绘图

vd_xgb <- variable_importance(explainer_xgb, type = "raw")
plot(vd_xgb)

在这里插入图片描述
上图显示了哪个指标对结局变量的影响最大,我们可以看到对结局影响最大是是年龄、FEV1,EDU3.

OK,本期先介绍到这里,未完待续。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿翼档案,将非结构化数据治理能力应用于档案管理的先行者

数字化时代&#xff0c;每个人每天都要接触大量的数据。人们通过分析数据获取信息与知识&#xff0c;帮助自身更好地理解社会动向&#xff0c;掌握行业发展。我们每天都会接触到多种多样的数据&#xff0c;这些数据根据结构可划分为三种&#xff1a;结构化数据、非结构化数据和…

Android设计模式详解之责任链模式

前言 责任链模式是行为型设计模式&#xff1b; 定义&#xff1a;使多个对象都有机会处理请求&#xff0c;从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链&#xff0c;并沿着这条链传递该请求&#xff0c;直到有对象处理它为止。 使用场景&#xff1a;…

基于概率论的MATLAB仿真,内容包括非共轭条件下的后验概率的推导,共轭条件下的非完备集的后验概率的推导

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 1.1先验概率的推导 根据贝叶斯概率论可知&#xff0c;某一事件的后验概率可以根据先验概率来获得&#xff0c;因此&#xff0c;这里首先对事件的先验概率分布进行理论的推导。假设测量的腐蚀数据…

[一个无框架的javaweb demo]番荒之冢 --番剧灯塔站

文章目录番荒之冢 --番剧灯塔站理念大致设计权限分配番剧信息用户/管理员信息邮箱正则匹配URL正则匹配留言信息数据库设计useranimationcommentfavoranim技术栈(无框架)功能一个简单的登录(进行了路由限制, 若未登录都会跳转至此)首页我的我的资料追番清单留言区番剧详情退出登…

华为云-计算云服务介绍

前言 相信很多小伙伴在刚开始接触各类云产品的时候&#xff0c;被各种各样的云产品类如规格、型号、价格、适用场景等问题所困扰。本文就给大家介绍一下华为云常见云产品的规格区别和适用场景。帮助大家选择合适的云产品。 文章目录前言一、计算云服务1.弹性云服务器2.裸金属服…

Apache Flink 部署模式

目录 会话模式 Session Mode 单作业模式 Per-Job Mode (deprecated) 应用模式 Application Mode 在一些应用场景中&#xff0c;对于集群资源分配和占用的方式&#xff0c;可能会有特定的需求。Flink 为各种场景提供了不同的部署模式&#xff0c;主要有以下三种&#xff1a; i…

ArcGIS | NetCDF数据在ArcMap中的使用

NetCDF又称科学数据集&#xff0c;可以存储温度、湿度、风速、风向等多个维度的文件格式。以中国区域地面气象要素驱动数据集为例进行介绍。 中国区域地面气象要素驱动数据集&#xff0c;包括近地面气温、近地面气压、近地面空气比湿、近地面全风速、地面向下短波辐射、地面向…

P6 PyTorch 常用数学运算

前言&#xff1a; 这里主要介绍一下PyTorch 的常用数学运算 目录&#xff1a; 1&#xff1a; add|sub 加减法 2: mul/div 乘/除运算 3: 矩阵乘法 4 2D矩阵转置 5 其它常用数学运算 6 clamp 梯度剪裁 一 加减法 1.1 加法 可以直接通过符号 或者 torch.add # -*- co…

MySQL数据库的安装、创建库及连接取数

安装MySQL数据库MySQL数据库简介安装MySQL数据库下载安装包安装MySQLMySQL创建一个新的数据库&#xff0c;并在其中创建新的数据表&#xff0c;填充测试数据并查看mysql>模式下输入的每句sql语句都要以;结尾&#xff1b;若多行语句无;&#xff0c;则被默认为一条语句未输入完…

UNIX环境高级编程——1.UNIX基础知识

UNIX基础知识 UNIX体系结构 严格意义上来说&#xff0c;可以将操作系统定义为一种软件&#xff0c;控制计算机硬件资源&#xff0c;提供程序运行环境。通常把这种软件成为内核。内核的接口被成为系统调用&#xff08;system call&#xff09;。公共函数库构建在系统调用接口之…

碳酸锂、碳酸氢锂除钙镁离子交换柱

锂及其盐类是国民经济和国防建设中具有重要意义的战略物资&#xff0c;也是与人们生活息息相关的能源材料。而碳酸锂作为锂盐的基础盐&#xff0c;是制取锂化合物和金属锂的原料&#xff0c;可作铝冶炼的电解浴添加剂&#xff0c;亦可用于合成橡胶、染料、半导体等方面。电池级…

Orin+ GMSL (Ser 9295+Des 9296)流程分析(1)

文章目录 1 前言2 流程分析2.1 整体架构2.2 Ser端2.2 Des端2.3 软件架构2.4 设备树文件分析2.5 VI 接口2.7 CSI 接口1 前言 Maxim 支持GMSL作为汽车行业视频应用的通信链路。GMSL基于SerDes (Serializer-Deserializer)技术;也就是说,它在发送端使用序列化器,在接收端使用反序…

观察UE4中引用查看器(ReferenceViewer)是从哪得到数据的

前言 引用查看器(ReferenceViewer)可以显示资源引用关系数据&#xff0c;我想要知道这个数据是如何得到的。因此从它的界面代码开始一步步往里看。 &#xff08;到最后才发现&#xff0c;得到引用关系数据的接口很简单&#xff0c;而且是蓝图可访问的&#xff0c;详见本篇的【…

冬至已至,你的在职读研2023能在社科院与杜兰大学金融管理硕士项目实现吗

杜甫《小至》中写道“天时人事日相催&#xff0c;冬至阳生春又来”。不知不觉间冬至悄然到来&#xff0c;过完冬至天气日渐回暖&#xff0c;春天即将回来了。时光总是匆匆而逝&#xff0c;一晃2022年将要与我们说再见了。这一年来&#xff0c;反复无常的疫情&#xff0c;瞬息万…

【学习笔记】JDK源码学习之HashTable(附带面试题)

【学习笔记】JDK源码学习之HashTable(附带面试题) 其他好文&#xff1a; 【学习笔记】JDK源码学习之LinkedHashMap&#xff08;附带面试题【学习笔记】JDK源码学习之HashMap&#xff08;附带面试题&#xff09;【学习笔记】JDK源码学习之Vector&#xff08;附带面试题&#x…

OpenCV基础入门

主要了解包括 opencv 的下载和环境配置opencv目录的了解opencv中highgui模块opencv中core模块opencv中imgproc模块opencv中feature2d模块opencv视频操作 1.OpenCV简介 图像是人类视觉的基础&#xff0c;是自然景物的客观反映。 模拟图像通过某种物理量的强弱变化来记录图像…

中小企业远程办公指南:10分钟搭建,即插即用

不装了 我成小阳人了 虽然还没算过来人&#xff0c;但是想要提醒一下小伙伴“能不阳就别阳”&#xff0c;“能晚阳就晚阳”&#xff01; 真的很痛很难受。 为了应对即将到来的高峰&#xff0c;我们在上周末紧急采取了远程居家办公模式。 不得不说&#xff0c;公司应对突发情…

彻底卸载2345王牌输入法的方法

2345王牌输入法是2345公司旗下一款中文输入法软件&#xff0c;主打纯净输入&#xff0c;有用户用了一段时间觉得不太习惯&#xff0c;就想卸载装别的软件&#xff0c;但是发现怎么也卸不掉&#xff0c;下面小编就给大家介绍彻底卸载2345王牌输入法的方法。 方法一&#xff1a;使…

线性代数 --- Gauss消元的部分主元法和完全主元法(补充)

Gauss消元的部分主元法和完全主元法(补充) 本文主要是对下文的补充&#xff0c;而补充的主要内容就是如何直接求出(手动)部分主元法的P矩阵和L矩阵&#xff1a; 线性代数 --- Gauss消元的部分主元法和完全主元法_松下J27的博客-CSDN博客_高斯消元的主元是什么Gauss消元的部分主…

MyBatisPlus ---- MyBatis-Plus简介

MyBatisPlus ---- MyBatis-Plus简介1. 简介2. 特性3. 支持数据库4. 框架结构1. 简介 MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 愿景&#xff1a; 我们的…