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

R语言数据分析15-xgboost模型预测

XGBoost模型预测的主要大致思路:

1. 数据准备

首先,需要准备数据。这包括数据的读取、预处理和分割。数据应该包括特征和目标变量。

步骤:
  • 读取数据:从CSV文件或其他数据源读取数据。
  • 数据清理:处理缺失值、异常值等。
  • 数据转换:将因变量转换为因子类型,特征变量转换为适合模型输入的格式。
  • 数据分割:将数据分为训练集和测试集,一般按照8:2的比例分割。

2. 特征工程

特征工程是提升模型性能的关键步骤。包括:

  • 特征选择:选择对预测目标最重要的特征。
  • 特征转换:将分类变量转换为数值变量(如独热编码)。
  • 特征缩放:标准化或归一化特征值。

3. 转换数据格式

XGBoost需要输入数据为矩阵格式。因此,需要将数据转换为稀疏矩阵格式。

4. 训练模型

训练模型是整个过程的核心步骤。需要设置模型的参数,并使用训练数据进行训练。

关键点:
  • 设置参数:包括树的深度、学习率、采样率等。
  • 交叉验证:使用交叉验证找到最佳的迭代次数。
  • 模型训练:使用最佳参数训练模型。

5. 模型调参

为了获得最佳模型性能,需要进行参数调优。常用的方法有网格搜索、随机搜索和贝叶斯优化。

6. 模型评估

使用测试集评估模型性能。常用的评估指标有准确率、精确率、召回率、F1分数等。

步骤:
  • 生成预测值:使用测试集生成预测值。
  • 计算评估指标:根据预测值和实际值计算模型性能指标。

7. 模型预测

使用训练好的模型对新数据进行预测。将新数据转换为与训练数据相同的格式,然后进行预测。

8. 模型保存和加载

训练好的模型可以保存到文件中,以便后续加载和使用。

步骤:
  • 保存模型:将模型保存到文件中。
  • 加载模型:从文件中加载模型,以便进行预测。

本文数据和代码案例

library(xgboost)
library(Metrics)
library(ggplot2)
library(readxl)
library(dplyr)# 读取数据
data <- read_excel("分析数据.xlsx")# 用每列的后一个值填充缺失值
data1 <- data %>%mutate(across(everything(), ~ ifelse(is.na(.), lead(.), .)))# 查看填充后的数据
head(data1)
# 分离特征和响应变量
X <- data1 %>% select(-ILI) # 移除ILI列
y <- data1$ILI
# 划分训练集和测试集
set.seed(123) # 确保可重复性
train_indices <- sample(1:nrow(data1), size = 0.7 * nrow(data1))
train_data <- X[train_indices, ]
train_label <- y[train_indices]
test_data <- X[-train_indices, ]
test_label <- y[-train_indices]
# 设置XGBoost参数
params <- list(booster = "gbtree",objective = "reg:squarederror",eta = 0.1
# 训练模型
model <- xgb.train(params, dtrain, nrounds = 150)# 预测
predictions <- predict(model, dtest)
# 输出评价指标
cat("R2:", R2, "\n")
cat("Adjusted R2:", adj_R2, "\n")
cat("RMSE:", RMSE, "\n")
cat("MSE:", MSE, "\n")

最终可视化评价指标

# 可视化
# 创建散点图和回归线
scatter_plot <- data.frame(Actual = test_label, Predicted = predictions) %>%ggplot(aes(x = Actual, y = Predicted)) +geom_point() +geom_smooth(method = "lm", col = "blue") +xlab("Actual ILI1") +ylab("Predicted ILI1") +ggtitle("Actual vs Predicted")# 设置标题居中
scatter_plot +theme(plot.title = element_text(hjust = 0.5))

思路主要是使用R语言进行XGBoost模型预测的流程包括数据准备、模型训练、参数调优、模型评估和预测。首先,加载数据并进行预处理,然后使用 xgb.cvxgb.train 函数进行模型训练和交叉验证。接着,通过调整参数优化模型性能,最后使用测试集评估模型,并使用训练好的模型进行预测新数据。 

数据和完整代码

创作不易,希望大家多多点赞收藏和评论!

http://www.lryc.cn/news/367038.html

相关文章:

  • 重构大学数学基础_week04_从点积理解傅里叶变换
  • Shell以及Shell编程
  • 从记忆到想象:探索AI的智能未来
  • “安全生产月”专题报道:AI智能监控技术如何助力安全生产
  • 【转】ES, 广告索引
  • Unity学习要点
  • 简单使用phpqrcode 生成二维码图片
  • 软考架构-计算机网络考点
  • 渗透测试之内核安全系列课程:Rootkit技术初探(三)
  • 大模型日报2024-06-08
  • leetcode 1631.最小体力消耗路径
  • 【ARM64 常见汇编指令学习 19.2 -- ARM64 地址加载指令 ADR 详细介绍】
  • vscode输出控制台中文显示乱码最有效解决办法
  • springboot + Vue前后端项目(第十五记)
  • 如何在Windows 11中恢复丢失的快速访问菜单?这里提供解决办法
  • 变声器软件免费版有哪些?国内外12大热门变声器大盘点!(新)
  • 计算机网络 —— 数据链路层(无线局域网)
  • SpringBoot图书管理系统【附:资料➕文档】
  • shell简介
  • 使用 Scapy 库编写 ICMP 不可达攻击脚本
  • Electron qt开发教程
  • 尝试用 GPT-4o 写 2024高考语文作文
  • 自动化Reddit图片收集:Python爬虫技巧
  • 自动驾驶人工智能
  • 基础乐理入门
  • mysql 8 linux7,8安装教程
  • 『矩阵论笔记』特征分解(eigendecomposition)通俗解释!
  • 顶级域名和二级域名的区别
  • 深入解析Kafka消息丢失的原因与解决方案
  • 【Python列表解锁】:掌握序列精髓,驾驭动态数据集合