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

第100+41步 ChatGPT学习:R语言实现误判病例分析

本期是《第33步 机器学习分类实战:误判病例分析》的R版本。

尝试使用Deepseek-R1来试试写代码,效果还不错。

下面上R语言代码,以Xgboost为例:

# 加载必要的库
library(caret)
library(pROC)
library(ggplot2)
library(xgboost)# 假设 'data' 是包含数据的数据框
# 设置随机种子以确保结果可重复
set.seed(123)# 将数据分为训练集和验证集(80% 训练集,20% 验证集)
trainIndex <- createDataPartition(data$X, p = 0.8, list = FALSE)
trainData <- data[trainIndex, ]
validData <- data[-trainIndex, ]# 为 XGBoost 准备数据矩阵
dtrain <- xgb.DMatrix(data = as.matrix(trainData[, -which(names(trainData) == "X")]), label = trainData$X)
dvalid <- xgb.DMatrix(data = as.matrix(validData[, -which(names(validData) == "X")]), label = validData$X)# 定义 XGBoost 的参数
params <- list(booster = "gbtree", objective = "binary:logistic", eta = 0.1, gamma = 0, max_depth = 6, min_child_weight = 1, subsample = 0.5, colsample_bytree = 0.9,lambda = 10,alpha = 5,eval_metric = "logloss")  # 使用 logloss 作为评估指标# 训练 XGBoost 模型,并加入早停法
model <- xgb.train(params = params, data = dtrain, nrounds = 250, watchlist = list(train = dtrain, eval = dvalid),  # 监控训练集和验证集early_stopping_rounds = 10,  # 如果验证集性能在 10 轮内没有提升,则停止训练verbose = 1)# 对训练集和验证集进行预测
trainPredict <- predict(model, dtrain)
validPredict <- predict(model, dvalid)# 将概率值转换为二分类预测结果(默认阈值为 0.5)
trainPredictBinary <- ifelse(trainPredict > 0.5, 1, 0)
validPredictBinary <- ifelse(validPredict > 0.5, 1, 0)# 提取正常分类和误判样本
# 训练集
trainResults <- trainData
trainResults$Predicted <- trainPredictBinary  # 添加预测结果列
trainResults$Actual <- trainData$X  # 添加真实标签列
trainResults$Status <- ifelse(trainResults$Predicted == trainResults$Actual, "Correct", "Misclassified")  # 添加分类状态列# 验证集
validResults <- validData
validResults$Predicted <- validPredictBinary  # 添加预测结果列
validResults$Actual <- validData$X  # 添加真实标签列
validResults$Status <- ifelse(validResults$Predicted == validResults$Actual, "Correct", "Misclassified")  # 添加分类状态列# 分离正常分类和误判样本
trainCorrect <- trainResults[trainResults$Status == "Correct", ]
trainMisclassified <- trainResults[trainResults$Status == "Misclassified", ]validCorrect <- validResults[validResults$Status == "Correct", ]
validMisclassified <- validResults[validResults$Status == "Misclassified", ]# 输出正常分类和误判样本
print("训练集中的正常分类样本:")
print(trainCorrect)print("训练集中的误判样本:")
print(trainMisclassified)print("验证集中的正常分类样本:")
print(validCorrect)print("验证集中的误判样本:")
print(validMisclassified)# 将结果保存到文件(可选)
write.csv(trainCorrect, file = "train_correct.csv", row.names = FALSE)
write.csv(trainMisclassified, file = "train_misclassified.csv", row.names = FALSE)
write.csv(validCorrect, file = "valid_correct.csv", row.names = FALSE)
write.csv(validMisclassified, file = "valid_misclassified.csv", row.names = FALSE)

简单解说:

(A)最终结果输出成excel查看,输出地址就是你的工作路径,不懂的话可以使用代码getwd()展示出来。

(B)打开工作路径,可以发现四个文件,分别对应混淆矩阵的四个数字:

(C)题外话:Deepseek-R1-0528 改改代码感觉可以跟GPT类似了,平替的好手。

相关文章:

第100+41步 ChatGPT学习:R语言实现误判病例分析

本期是《第33步 机器学习分类实战&#xff1a;误判病例分析》的R版本。 尝试使用Deepseek-R1来试试写代码&#xff0c;效果还不错。 下面上R语言代码&#xff0c;以Xgboost为例&#xff1a; # 加载必要的库 library(caret) library(pROC) library(ggplot2) library(xgboost)…...

贝锐蒲公英工业路由器R300A海外版:支持多国4G频段,全球组网

为更好地满足全球部署和企业出海项目的多样化需求&#xff0c;贝锐蒲公英异地组网工业路由器R300A海外版全新上市&#xff0c;并已正式上架速卖通&#xff01;无论是跨国分支机构协同办公&#xff0c;还是海外工厂设备远程运维&#xff0c;R300A海外版都能为企业提供灵活、高性…...

字符串索引、幻读的解决方法

1. 给字符串加索引 1.1. 前缀索引vs完整索引 假设有一个支持邮箱登录的系统&#xff0c;用户表定义如下&#xff1a; CREATE TABLE SUser(ID BIGINT UNSIGNED PRIMARY KEY,email VARCHAR(64),... ) ENGINEInnoDB; 为了根据邮箱查询用户信息&#xff0c;常用的查询语句如下&…...

[特殊字符] 超强 Web React版 PDF 阅读器!支持分页、缩放、旋转、全屏、懒加载、缩略图!

在现代 Web 项目中&#xff0c;PDF 浏览是一个常见需求&#xff1a;从政务公文到合同协议&#xff0c;PDF 文件无处不在。但很多方案要么体验不佳&#xff0c;要么集成复杂。今天&#xff0c;我给大家带来一个开箱即用、功能全面的 PDF 预览组件 —— [PDFView](https://www.np…...

wireshark分析国标rtp ps流

1.将抓到的tcp或者udp视频流使用decode as 转为rtp包 2.电话->RTP->RTP播放器 选择Export 里面的Payload 就可以导出原始PS流...

jetpack compose 界面刷新的几种方式 如何避免无效的界面刷新

界面刷新的几种方式 在 Jetpack Compose 中&#xff0c;界面刷新主要依赖于数据的响应式变化。以下是几种常见的界面刷新方式及其原理&#xff1a; 1. 使用 MutableState&#xff08;基础方式&#xff09; 通过 mutableStateOf 创建可观察的状态&#xff0c;状态变化时会触发…...

【STM32+LAN9252+HAL库】EtherCAT从站搭建 保姆级教程

目录 一、生成协议栈及XML文件 二、使用stm32CuboMX配置外设 三、协议栈移植 鉴于本人对EtherCAT的掌握程度十分有限&#xff0c;这篇文章仅作为我搭建基础从站的过程记录不做更多讲解。本文内容主要为SPI模式的基础搭建&#xff0c;更多深入的学习资料和细节&#xff0c;大家…...

【harbor】--基础使用

推送 不同的管理工具都有说明 以docker为例 # 第一步--打标签 docker tag SOURCE_IMAGE[:TAG] 192.168.121.201:801/haohao_fist/REPOSITORY[:TAG] # 第二步--推送 docker push 192.168.121.201:801/haohao_fist/REPOSITORY[:TAG]默认push推送为https push会失败 解决办法…...

JAVA学习 DAY1 初识JAVA

本系列可作为JAVA学习系列的笔记&#xff0c;文中提到的一些练习的代码&#xff0c;小编会将代码复制下来&#xff0c;大家复制下来就可以练习了&#xff0c;方便大家学习。 点赞关注不迷路&#xff01;您的点赞、关注和收藏是对小编最大的支持和鼓励&#xff01; 系列文章目录…...

*JavaScript中的Symbol类型:唯一标识符的艺术

JavaScript中的Symbol类型&#xff1a;唯一标识符的艺术 在JavaScript的世界中&#xff0c;数据类型一直是开发者关注的焦点。从基本的Number、String到后来的Symbol&#xff0c;每一种类型的引入都为语言本身注入了新的活力。而今天我们要聊的主角——Symbol&#xff0c;是ES…...

Vue能启动但访问空白?并报”export ‘default’ (imported as ‘Vue’) was not found in ‘vue’

场景 如图&#xff0c;vue项目的node_modules下载顺利&#xff0c;启动也顺利&#xff0c;但是访问却为空白页面 虽然页面是空白&#xff0c;但是通过浏览器控制台可以看出并非简单的空白&#xff0c;确实有不兼容问题在里面 分析问题 从上图浏览器控制台可以看出&#xff0c…...

Electron-vite【实战】MD 编辑器 -- 系统菜单(含菜单封装,新建文件,打开文件,打开文件夹,保存文件,退出系统)

最终效果 整体架构 src/main/index.ts import { createMenu } from ./menu在 const mainWindow 后 // 加载菜单createMenu(mainWindow)src/main/menu.ts import { BrowserWindow, Menu, MenuItem, MenuItemConstructorOptions, dialog, shell } from electron import fs from…...

如何将 PDF 文件中的文本提取为 YAML(教程)

这篇博客文章将向你展示如何将 PDF 转换为 YAML&#xff0c;通过提取带有结构标签的标记内容来实现。 什么是结构化 PDF&#xff1f; 一些 PDF 文件包含结构化内容&#xff0c;也称为带标签&#xff08;tagged&#xff09;或标记内容&#xff08;marked content&#xff09;&…...

【Docker系列】Docker 容器内安装`ps`命令

博客目录 一、为什么需要在 Docker 容器中安装ps命令二、不同 Linux 发行版的安装方法1. Alpine Linux 镜像的安装方法2. Debian/Ubuntu 镜像的安装方法3. CentOS/RHEL 镜像的安装方法 三、验证安装与基本使用四、永久解决方案&#xff1a;修改 Dockerfile1. Alpine 基础镜像的…...

Netty 实战篇:为 Netty RPC 框架增加超时控制与重试机制,防止系统雪崩

本文介绍如何在自研 Netty RPC 框架中实现超时控制与重试机制。合理的超时策略可以避免调用卡死&#xff0c;重试机制可以提升调用成功率&#xff0c;在高可用系统中不可或缺。 一、为什么要有超时和重试&#xff1f; RPC 是跨进程调用&#xff0c;失败是常态。常见问题包括&a…...

PDFGear——完全免费且功能强大的PDF处理软件

关键词 &#xff1a;PDFGear、免费、跨平台、多功能、OCR 概要 &#xff1a;PDFGear是一款完全免费且功能强大的PDF处理软件&#xff0c;支持Windows、macOS、iOS和Android等多平台使用。它集PDF阅读、编辑、格式转换、OCR识别及AI智能助手于一体&#xff0c;满足用户多样化文档…...

华为OD机试真题——生成哈夫曼树(2025A卷:100分)Java/python/JavaScript/C/C++/GO六种最佳实现

2025 A卷 100分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 本文收录于专栏:《2025华为OD真题目录+全流程解析/备考攻略/经验分享》 华为OD机试真题《生成…...

大厂前端研发岗位设计的30道Webpack面试题及解析

文章目录 一、基础核心二、配置进阶三、性能优化四、Loader原理五、Plugin机制六、高级应用七、工程化实战八、原理深挖九、异常处理十、综合场景一、基础核心 Webpack的核心概念是什么? 解析:入口(entry)、输出(output)、加载器(loader)、插件(plugins)、模式(mode)。Loader…...

Oracle中EXISTS NOT EXISTS的使用

目录 1.IN与EXISTS EXISTS用法总结 2.NOT IN与NOT EXISTS 3.not in 中 null的用法 4.EXISTS和IN的区别 (面试常问) 1.IN与EXISTS 示例&#xff1a;在 DEPT 表中找出在 EMP 表中存在的部门编号&#xff1b; 方法一&#xff1a;使用in select DEPTNO from DEPT where D…...

01.认识Kubernetes

什么是Kubernets 套用官方文档对Kubernetes的定义&#xff0c;翻译成中文的意思是&#xff1a; Kubernetes&#xff0c;也称为k8&#xff0c;是一个用于自动化部署、扩展和管理容器化应用程序的开源系统。 它将组成应用程序的容器分组为逻辑单元&#xff0c;以便于管理和发现…...

基于AI生成测试用例的处理过程

基于AI生成测试用例的处理过程是一个结合机器学习、自然语言处理&#xff08;NLP&#xff09;和领域知识的系统性流程。以下是其核心步骤和关键技术细节&#xff0c;以帮助理解如何利用AI自动化生成高效、覆盖全面的测试用例。 1. 输入分析与需求建模 目标 将用户需求、系统文…...

【PostgreSQL 02】PostgreSQL数据类型革命:JSON、数组与地理信息让你的应用飞起来

PostgreSQL数据类型革命&#xff1a;JSON、数组与地理信息让你的应用飞起来 关键词 PostgreSQL高级数据类型, JSONB, 数组类型, PostGIS, 地理信息系统, NoSQL, 文档数据库, 空间数据, 数据库设计, PostgreSQL扩展 摘要 PostgreSQL的高级数据类型是其区别于传统关系数据库的核心…...

Acrobat DC v25.001 最新专业版已破,像word一样编辑PDF!

在数字化时代&#xff0c;PDF文件以其稳定性和通用性成为了文档交流和存储的热门选择。无论是阅读、编辑、转换还是转曲&#xff0c;大家对PDF文件的操作需求日益增加。因此&#xff0c;一款出色的PDF处理软件不仅要满足多样化的需求&#xff0c;还要通过简洁的界面和强大的功能…...

tmux基本原理

目录 **一、核心架构&#xff1a;客户端-服务器模型****二、终端虚拟化&#xff1a;伪终端&#xff08;PTY&#xff09;****三、会话持久化原理****四、窗格分割的实现****五、关键系统调用****六、与传统终端对比****七、典型工作流示例****总结** tmux&#xff08;Terminal M…...

RAGFlow从理论到实战的检索增强生成指南

目录 前言 一、RAGFlow是什么&#xff1f;为何需要它&#xff1f; 二、RAGFlow技术架构拆解 三、实战指南&#xff1a;从0到1搭建RAGFlow系统 步骤1&#xff1a;环境准备 步骤2&#xff1a;数据接入 步骤3&#xff1a;检索与生成 四、优化技巧&#xff1a;让RAGFlow更精…...

【Java】ForkJoin 框架

在Java中&#xff0c;ForkJoin框架是并行编程的一个重要工具&#xff0c;它主要用于处理可以分解为多个子任务的复杂任务。ForkJoin框架的核心是ForkJoinPool&#xff0c;它是一个线程池&#xff0c;专门用于执行ForkJoinTask任务。通过将大任务分解为多个小任务&#xff0c;并…...

PHP实战:安全实现文件上传功能教程

HTML部分&#xff1a; <form action"upload.php" method"post" enctype"multipart/form-data"> <input type"file" name"userfile"> <input type"submit" value"上传"> <…...

桥 接 模 式

在玩游戏的时候我们常常会遇到这样的机制&#xff1a;我们可以随意选择不同的角色&#xff0c;搭配不同的武器。这时只有一个抽象上下文的策略模式就不那么适用了&#xff0c;因为一旦我们使用继承的方式&#xff0c;武器和角色总有一方会变得难以扩展。这时&#xff0c;我们就…...

基于 Flink+Paimon+Hologres 搭建淘天集团湖仓一体数据链路

摘要&#xff1a;本文整理自淘天集团高级数据开发工程师朱奥老师在 Flink Forward Asia 2024 流式湖仓论坛的分享。内容主要为以下五部分&#xff1a; 1、项目背景 2、核心策略 3、解决方案 4、项目价值 5、未来计划 01、项目背景 1.1 当前实时数仓架构 当前的淘天实时架构是从…...

多杆合一驱动城市空间治理智慧化

引言&#xff1a;城市“杆林困境”与智慧化破局 走在现代城市的街道上&#xff0c;路灯、监控、交通信号灯、5G基站等杆体林立&#xff0c;不仅侵占公共空间&#xff0c;更暴露了城市治理的碎片化问题。如何让这些“沉默的钢铁”升级为城市的“智慧神经元”&#xff1f;答案在…...