【Python机器学习系列】建立super learner模型预测心脏疾病(案例+源码)

news2024/12/23 10:17:25

这是我的第353篇原创文章。

一、引言

Super learner 是 Vander Laan et al.(2007)提出的一种基于损失函数的组合预测的学习算法。Super learner算法基于交叉验证理论,通过加权的方式组合多种候选算法,从而构造一种最小交叉验证风险的算法组合。

Super learner 算法的基本步骤可以归纳为:

  • 首先,随机将数据集分为 k 组,本文的 k 为 5,然后选择不同的预测算法。

  • 然后遍历每一种算法用于训练集数据,计算在验证集上的发病概率 S。

  • 在验证集中,通过事件结局和发病概率计算风险,于是得到每一种算法的平均预测风险。

  • 加权不同的预测算法进行组合,更新权重 α 从而得到最小交叉验证风险的算法组合。

  • 最后在完整的数据集中拟合每个预测算法,构建 super learner 模型。

二、实现过程

1、准备数据

data = pd.read_csv(r'Dataset.csv')
df = pd.DataFrame(data)

df:

图片

数据基本信息:

print(df.head())
print(df.info())
print(df.shape)
print(df.columns)
print(df.dtypes)
cat_cols = [col for col in df.columns if df[col].dtype == "object"] # 类别型变量名
num_cols = [col for col in df.columns if df[col].dtype != "object"] # 数值型变量名

2、提取特征变量和目标变量

target = 'target'
features = df.columns.drop(target)
print(data["target"].value_counts()) # 顺便查看一下样本是否平衡

3、数据集划分

X_train, X_test, y_train, y_test = train_test_split(df[features], df[target], test_size=0.2, random_state=0)
X_train = np.array(X_train)
y_train = np.array(y_train)
X_test = np.array(X_test)
y_test = np.array(y_test)

4、归一化

# 此步骤略过

5、模型的构建与训练

# 模型的构建与训练
model = SuperLearnerClassifier()
model.fit(X_train, y_train)

6、模型的推理与评价

# 模型推理与评价
y_pred = model.predict(X_test)
y_scores = model.predict_proba(X_test)

acc = accuracy_score(y_test, y_pred) # 准确率acc
cm = confusion_matrix(y_test, y_pred) # 混淆矩阵
cr = classification_report(y_test, y_pred) # 分类报告
fpr, tpr, thresholds = roc_curve(y_test, y_scores[:, 1], pos_label=1) # 计算ROC曲线和AUC值,绘制ROC曲线
roc_auc = auc(fpr, tpr)
plt.figure()
plt.plot(fpr, tpr, color='darkorange', lw=2, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic')
plt.legend(loc="lower right")
plt.show()

cm:

图片

cr:

图片

ROC:

图片

作者简介:

读研期间发表6篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能系列基础知识与应用案例。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。需要数据集和源码的小伙伴可以关注底部公众号添加作者微信。

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

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

相关文章

Hadoop集群开启后使用jps命令查看发现没有NameNode、SecondaryNameNode、DataNode、NodeManager进程,缺少进程。

今天安装Hadoop集群,安装完成使用jps命令查看发现没有NameNode进程,别人jps后都有6个在跑,我就两个。看到别人的 我的👉。都看懵了。。。 处理NameNode不启动的问题 检查ip地址是否是namenode所在节点的ip。 要检查 IP 地址是否是 NameNode 所在节点的 IP 地址,你可以通…

大数据之Spark(二)

9.4.3、RDD持久化 RDD之间进行相互迭代计算(Transformation的转换),当执行开启,新RDD的生成代表旧RDD消失。如果有的rdd需要重复使用就需要将rdd缓存,rdd.cache()或rdd.persist()。清理缓存rdd.unpersist() 缓存特点&…

Python项目虚拟环境(超详细讲解)

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :&#x1…

android 生SHH,并配置

1. ssh-keygen -t rsa -b 4096 -C "XXXXxx.com" 2. vim ~/.ssh/config 新建一个文件:~/.ssh/config:并将下列的内容放入: Host * HostKeyAlgorithms ssh-rsa PubkeyAcceptedKeyTypes ssh-rsa 4.得到XXX.pub去添加ssh 5.克隆

【Java】方法1_定义方法,完整格式,原理

文章目录 前言 一、方法是什么? 方法的完整格式 1、有返回值的函数 2、无返回值的函数 二、方法使用常见的问题三、方法在计算机中执行的原理总结 前言 学习记录方法 一、方法是什么? 方法是一种语法结构,它可以把一段代码封装成一个功能…

python绘制3d建筑

import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d.art3d import Poly3DCollection# 随机生成建筑块数据 def generate_building_blocks(num_blocks, grid_size100, height_range(5, 50), base_size_range(10, 30)):buildings []for _ in range(…

<<编码>>第 11 章 逻辑门电路--开关电路 示例

网络电路 info::操作说明 鼠标单击开关切换开合状态 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/code-hlchs-examples/assets/circuit/code-hlchs-ch11-01-network-circuit.txt 继电器开关电路 info::操作说明 鼠标单击开关切…

python-游戏自动化(二)(OpenCV图像运用基础)

OpenCV OpenCV简介 首先我们来了解一下,OpenCV是什么? OpenCV 是计算机视觉中经典的专用库,其支持多语言、跨平台,功能强大。 OpenCV现在支持与计算 机视觉和机器学习有关的多种算法,并且正在日益扩展…

基于vue框架的宠爱有佳宠物医疗管理系统4x10z(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,宠物信息,医生,用户挂号,病历记录,科室信息,药物信息 开题报告内容 基于Vue框架的宠爱有佳宠物医疗管理系统开题报告 一、引言 随着现代社会生活节奏的加快,宠物已成为许多家庭不可或缺的一员。宠物不仅带来了欢乐与…

海康威视相机在QTcreate上的使用教程

文章目录 前言:基础夯实:效果展示:图片展示:视频展示: 参考的资料:遇到问题:问题1:int64 does not问题2:LNK2019配置思路(这个很重要)配置关键图片:配置具体过…

HyperWorks二维网格划分与单元连续性

自动网格划分 HyperWorks中为零件定义几何曲面是创建零件壳单元网格的最佳方式。HyperMesh 创建二维网格最有效的方法是使用 Automesh 面板直接在零件的表面创建网格。 Automesh 面板是 HyperMesh 重要的网格划分工具,通过 automesh 可实现单元尺寸、单元密度、单…

TopN问题

100亿个integer数据,如何找到前k个最小值。 也就是问的如何排序最快 堆排序最快 完全二叉树 堆结构其实就是一颗完全二叉树 大根堆和小根堆 大根堆:每一个根节点都大于它的叶子结点 小根堆:每一个根节点都小于它的叶子结点 通过建立大根…

【最新顶刊综述】【多模态学习】Vision + X:A Survey on Multimodal Learning in the Light of Data

VisionX:基于数据的多模态学习综述 论文链接 0.论文摘要和信息 摘要 摘要——我们以多感官的方式感知世界并与世界交流,不同的信息源由人脑的不同部分复杂地处理和解释,构成一个复杂但和谐统一的感知系统。为了赋予机器真正的智能&#x…

核心系统用PG了,抠脑壳的权限,搞晕了!

作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、 高斯及Greenplum备份恢复, 安装迁移,性能优化、故障…

ThinkPHP8出租屋管理系统

有需要请加文章底部Q哦 可远程调试 ThinkPHP8出租屋管理系统 一 介绍 此出租屋管理系统基于ThinkPHP8框架开发,数据库mysql,前端Vue3,前后端不分离,系统主要角色为管理员。房租计算器,房东记账收租管理,房…

使用 Prism 框架实现导航.NET 6.0 + WPF

动动您的手指关注下公众号,获取更多优质文章 前言 Prism 一个开源的框架,专门用于开发可扩展、模块化和可测试的企业级 XAML 应用程序,适用于 WPF(Windows Presentation Foundation)和 Xamarin Forms 等平台。 Prism…

用什么软件可以把做过的试卷还原?4款软件轻松还原

用什么软件可以把做过的试卷还原?在数字化教育的浪潮中,将做过的试卷还原成空白状态不仅满足了学生和教师对于重复练习和分享的需求,还极大地提升了学习效率与资源利用率。这一功能使得错题重做、模拟考试等教学活动更加便捷,促进…

Openpose

核心概念: OpenPose基于Part Affinity Fields(PAFs,部件亲和场)的概念,这是一种非参数化的表示方法,用于学习图像中个体的身体部位之间的关联。 系统流程: 输入图像: 方法接受一个…

单片机,传感器等低功耗管理

**有些客户需求,把设备做成低功耗管理,这样就可以节省电池的电量,也可以增加传感器的使用寿命 HCLK为CPU提供时钟,内核执行代码。当CPU不需要继续运行时,可以利用多种低功耗模式,等待某个事件触发 ① 睡眠…

大模型实战教程:使用Langchain与ChatGLM实现本地知识库

大语言模型也只是将用户提供的大规模数据集训练而来,也并非万能的什么都知道,特别是一些小众知识、内部数据或私密的个人数据等,此时ChatGLM3肯定会胡乱回答就是ChatGPT4也不一定能给出满意回答;不少公司、个人都有自己的知识库或…