第33步 机器学习分类实战:误判病例分析

news2025/2/22 16:05:23

填最后一个坑,如何寻找误判的病例。

之前我们在介绍AUC的时候,提到了两个函数:predict和predict_proba,复习一下:

auc_test = roc_auc_score(y_test, y_testprba) 

roc_auc_score的参数呢,包括两个:y_test是实际值,y_testprba是预测的概率(注意,是概率,而不是分类,要和y_pred做区别),来看看代码:

y_pred = classifier.predict(X_test)
y_testprba = classifier.predict_proba(X_test)[:,1] 

来,一个是predict,一个是predict_proba,输出的如图所示。

一目了然了吧,就是根据0.5为阈值进行分类的。

所以呢,可以根据y_pred和y_true就可以判断是所谓的误诊(y_true是0,而y_pred是1)还是漏诊(y_true是1,而y_pred是0)。

具体操作在excel即可完成,最重的就是筛选出误诊和漏诊的病例:

我们还是用Xgboost做例子(测试集):

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
dataset = pd.read_csv('X disease code fs.csv')
X = dataset.iloc[:, 1:14].values
Y = dataset.iloc[:, 0].values
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size = 0.30, random_state = 666)
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
import xgboost as xgb
param_grid=[{
            'n_estimators':[35],
            'eta':[0.1],
            'max_depth':[1],
            'gamma':[0],
            'min_child_weight':[5],
            'max_delta_step':[1],
            'subsample':[0.8],
            'colsample_bytree':[0.8],
            'colsample_bylevel':[0.8],
            'reg_lambda':[9],
            'reg_alpha':[5],
            },
           ]
boost = xgb.XGBClassifier()
classifier = xgb.XGBClassifier()
from sklearn.model_selection import GridSearchCV
grid_search = GridSearchCV(boost, param_grid, n_jobs = -1, verbose = 2, cv=10)      
grid_search.fit(X_train, y_train)    
classifier = grid_search.best_estimator_  
classifier.fit(X_train, y_train)
y_pred = classifier.predict(X_test)
y_testprba = classifier.predict_proba(X_test)[:,1] 
y_trainpred = classifier.predict(X_train)
y_trainprba = classifier.predict_proba(X_train)[:,1]

由于我们演示的是测试集,所以关注y_pred和y_test:

 接着,我们需要在运行一次代码:

X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size = 0.30, random_state = 666)

我们需要获得y_text对应的X_test,而上述那一串代码的X_test的数据已经被归一化了,没法使用,我们需要的是原始数据:

然后,我们把y_pred和y_test以及X_test复制到新的excel(注意:不要搞乱顺序,目前顺序是一一对应的)

 不放心的话,可以调出原始数据,稍微对应一下是否做到一一对应了,比如:

对应得上,不放心就再找几个做校对。

接着,新开一列,用真实值减去预测值,那么误诊(真实是0,而预测是1)就是-1,漏诊(真实是1,而预测是0)就是1。使用筛选功能,分别把它们提取出来,做你想做的分析,水几个图还是OK的。

 

 终于,花了32期,把机器学习分类讲完了,洋洋洒洒4-5万字,有种写博士毕业论文的感觉了,希望对大家有用,也欢迎进行技术探讨。特别是Xgboost、LightGBM还有Catboost,以及各种Stacking模型,掌握的还是不够深入。

 

 

 

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

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

相关文章

用一杯星巴克的钱,训练自己私有化的ChatGPT

点击蓝字 关注我们 文章摘要:用一杯星巴克的钱,自己动手2小时的时间,就可以拥有自己训练的开源大模型,并可以根据不同的训练数据方向加强各种不同的技能,医疗、编程、炒股、恋爱,让你的大模型更“懂”你….…

想知道如何给游戏视频配音?有三个好方法教给你

现在越来越多的小伙伴会在闲暇之余打打游戏,也会观看一些游戏视频,其中不少游戏视频都有配音。游戏视频配音是一项有趣而富有创造力的任务,它可以让你为游戏画面注入声音,增强观众的体验。无论你是一个游戏爱好者还是一个内容创作…

前端vscode插件bito

GPT-4和ChatGPT越来越火,前端人员是否也能在日常工作中尝试体验其带来的乐趣呢? 答案是可以的!安排!! 今天介绍一款vscode的插件 【bito】。 安装 安装后只需要自己注册一下,创建一个workspace就可以使用…

【满分】【华为OD机试真题2023B卷 JAVAJS】经典屏保

华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 经典屏保 知识点循环迭代编程基础 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: DVD机在视频输出时,为了保护电视显像管,在待机状态会显示“屏保动画”,如下图所示,DVD Logo在屏幕内来回运动,碰到边缘会反弹…

凡亿教育荣获2023 STM32峰会“生态合作伙伴”奖项

作为中国知名的电子设计在线教育领域的优秀企业,凡亿教育喜迎好消息!2023年5月12日,STM32峰会在深圳重磅回归,凡亿教育荣获STM32峰会颁发的“生态合作伙伴”奖项,这一殊荣充分肯定了凡亿教育在STM32生态系统中的杰出贡…

C进阶:数据在内存中的存储(1)

引入: 大家好,感谢大家最近的支持,今天也是开始了C进阶一系列的博文的创作,欢迎大佬们来指点,欢迎来一起沟通!!! 数据类型的介绍 我们都知道:C语言具有以下几种数据类…

拼多多继续ALL IN

2023年注定是中国电商不平凡的一年。 随着网购用户数量见顶,经济形势进入新常态,电商平台已经来到了短兵相接的肉搏战阶段。 此刻的618大促,硝烟弥漫,刀光剑影,电商“决战”似乎是迫在眉睫。对各个平台来说&#xff0c…

SpringBoot:WebSocket实现消息撤回、图片撤回

下面只是讲述一下实现思路,代码基本没有哈!有时间单独发表一篇关于websocket的相关操作的博客。 1. 消息撤回、图片撤回 个人觉得关于撤回,需要下述几个过程: 发送的消息的标签上可以定义一个属性,这个属性的值应该是…

18- 弹幕系统设计

1、弹幕系统设计 场景分析:客户端针对某一视频创建了弹幕,发送后端进行处理,后端需要对所有正在观看该视频的用户推送该弹幕。 1.1、实现方式 使用短连接进行通信或使用长连接进行通信。 1.1.1、短连接实现方案 所有观看视频的客户端不断…

单元测试尽量不要区分类与方法

单元测试尽量不要区分类与方法 单元测试是软件开发中非常重要的一环,其主要作用是在开发过程中对代码进行自动化测试与检验,从而保证代码质量,减少错误和缺陷的产生。然而,在实际的单元测试中,很多人会选择将测试分成类…

svg教程-初识svg

第一章 认识svg 简单来说: 位图:放大会失真图像边缘有锯齿;是由像素点组成;前端的 Canvas 就是位图效果。 矢量图:放大不会失真;使用 XML 描述图形。 我在 知乎 上找了一个图对说明一下。 左边是位图&…

chatgpt赋能python:用Python打造个人网站的SEO优化

用Python打造个人网站的SEO优化 简介 在互联网时代,拥有一个个人网站已经成为了一个时尚和必要的事情。网站不仅可以展示你的技能和个人风采,还可以提高你的知名度和影响力。但是,如何让人们发现你的网站,通过搜索引擎来访问你的…

从中序与后序遍历序列构造二叉树(java)

从中序与后序遍历序列构造二叉树 leetcode 106 题 从中序与后序遍历序列构造二叉树解题思路解题代码:二叉树专题 leetcode 106 题 从中序与后序遍历序列构造二叉树 leetcode 106:从中序与后序遍历序列构造二叉树 原题链接 题目描述: 给定两个整数数组 i…

342. 4的幂

342. 4的幂 原题链接:完成情况:解题思路:参考代码: 原题链接: 342. 4的幂 https://leetcode.cn/problems/power-of-four/ 完成情况: 解题思路: 跟之前的一个丑数一样,循环条件就…

使用VSCode SSH公网远程连接本地服务器开发 - cpolar内网穿透

文章目录 前言视频教程1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 转…

MySQL-事件详解

♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️树高千尺,落叶归根人生不易&…

本地Linux服务器安装MongoDB数据库【公网远程数据库】

文章目录 👉关于作者👉前言😜1. 配置Mongodb源😜2. 安装MongoDB😜3. 局域网连接测试😜4. 安装cpolar内网穿透😜5. 配置公网访问地址😜6. 公网远程连接😜7. 固定连接公网地…

基于Kubernetes的实战案例分享

▲ 点击上方"DevOps和k8s全栈技术"关注公众号 本技术文档旨在分享一个基于Kubernetes(简称K8s)的实际应用案例。我们将介绍K8s集群的规模、部署架构,并详细说明该案例在生产环境中的实际应用。通过本文档,读者将能够了解…

elasticsearchelastic-head docker安装

Elasticsearch8.7.1 安装 拉取镜像 docker pull docker.elastic.co/elasticsearch/elasticsearch:8.7.1创建elastic 网络 docker network create elastic执行创建 docker run --name esA --net elastic -p 9200:9200 -e ES_JAVA_OPTS"-Xms1g -Xmx1g" -it dock…

【笔记】微机原理及接口技术1 -- 微机基础与8086

微机基础 微机组成 下图展示了微型计算机的硬件系统基本结构 中央处理器(CPU): 负责执行计算机程序指令,进行数据运算和逻辑运算。 主存: 用于 storing 程序和数据,包括只读存储器 ROM 和随机存储器 RAM。 输入设备: 外部数据输入的途径,如鼠标、键盘、扫描仪等。 输出设备…