数据分享|PYTHON用决策树分类预测糖尿病和可视化实例

news2024/11/26 15:39:56

全文下载链接:http://tecdat.cn/?p=23848

在本文中,决策树是对例子进行分类的一种简单表示。它是一种有监督的机器学习技术,数据根据某个参数被连续分割。决策树分析可以帮助解决分类和回归问题点击文末“阅读原文”获取完整代码数据

相关视频

决策树算法将数据集分解成更小的子集;同时,相关的决策树也在逐步发展。决策树由节点(测试某个属性的值)、边/分支(对应于测试的结果并连接到下一个节点或叶子)和叶子节点(预测结果的终端节点)组成,使其成为一个完整的结构。

扩展:GBDT (Gradient Boosting Decision Tree) 梯度提升决策树

GBDT (Gradient Boosting Decision Tree) 梯度提升决策树。DT-Decision Tree决策树,GB是Gradient Boosting,是一种学习策略,GBDT的含义就是用Gradient Boosting的策略训练出来的DT模型。

在这篇文章中,我们将学习Python中决策树的实现,使用scikit learn包。

对于我们的分析,我们选择了一个非常相关和独特的数据集,该数据集适用于医学科学领域,它将有助于预测病人是否患有糖尿病查看文末了解数据免费获取方式,基于数据集中采集的变量。这些信息来自国家糖尿病、消化道和肾脏疾病研究所,包括预测变量,如病人的BMI、怀孕情况、胰岛素水平、年龄等。让我们直接用决策树算法来解决这个问题,进行分类。

用Python实现决策树

对于任何数据分析问题,我们首先要清理数据集,删除数据中的所有空值和缺失值。在这种情况下,我们不是在处理错误的数据,这使我们省去了这一步。 

1. 为我们的决策树分析导入所需的库并拉入所需的数据

# 加载库
from sklearn.model\_selection import train\_test\_split #导入 train\_test_split 函数
from sklearn import metrics #导入scikit-learn模块以计算准确率

# 载入数据集
data = pd.read\_csv("diabs.csv", header=None, names=col\_names)

让我们看看这个数据集的前几行是什么样子的

pima.head()

0eddfb4da928389ab1c07c3e6930d414.png

2. 在加载数据后,我们了解结构和变量,确定目标变量和特征变量(分别为因变量和自变量)。

#在特征和目标变量中拆分数据集
X = pima\[feature\] # 特征
y = pima.label # 目标变量

3. 我们把数据按70:30的比例分成训练集和测试集。

# 将数据集分成训练集和测试集
train\_test\_split(X, y, test\_size=0.3, random\_state=1) # 70%的训练和30%的测试

标准做法,你可以根据需要调整70:30至80:20。 


点击标题查阅往期内容

62f12e60fc4b99ec151e70c7e05d6cc9.jpeg

R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测

outside_default.png

左右滑动查看更多

outside_default.png

01

b190fe3f7840b6e62ae8246a59c777bf.png

02

44ade8f5dbb925006f0ac4da7f858b1a.png

03

52e7659c1185d4955f531e47885f5297.png

04

c4a36f0f08385be38ad48cc5e795e89d.png

4. 使用scikit learn进行决策树分析

# 创建决策树分类器对象
clf = DecisionTreeClassifier()

5. 估计分类器预测结果的准确程度。准确度是通过比较实际测试集值和预测值来计算的。

# 模型准确率,分类器正确的概率是多少?
print("准确率:",metrics.accuracy\_score(y\_test, y_pred))

e9d221135153acd926748e57bf74cee6.png

我们的决策树算法有67.53%的准确性。这么高的数值通常被认为是好的模型。 

6. 现在我们已经创建了一棵决策树,看看它在可视化的时候是什么样子的

决策树的可视化。

Image(graph.create_png())

f6b3589e49854c18bc759c531939fe24.png

Python输出

你会注意到,在这个决策树图中,每个内部节点都有一个分割数据的决策规则。

衡量通过决策树分析创建的节点的不纯度

Gini指的是Gini比,衡量决策树中节点的不纯度。人们可以认为,当一个节点的所有记录都属于同一类别时,该节点是纯的。这样的节点被称为叶子节点。

在我们上面的结果中,由于结果的复杂性,完整的决策树很难解释。修剪一棵树对于结果的理解和优化它是至关重要的。这种优化可以通过以下三种方式之一进行。

  • 标准:默认="gini"

  • splitter:字符串,可选(默认="best")或分割策略。选择分割策略。可以选择 "best"来选择最佳分割,或者选择 "random"来选择最佳随机分割。

  • max_depth: int或None,可选(默认=None)或树的最大深度
    这个参数决定了树的最大深度。这个变量的数值越高,就会导致过度拟合,数值越低,就会导致拟合不足。

在我们的案例中,我们将改变树的最大深度作为预修剪的控制变量。让我们试试max_depth=3。

# 创建决策树分类器对象
DecisionTree( max_depth=3)

67143515e758612134df190e5b452b13.png

在Pre-pruning上,决策树算法的准确率提高到77.05%,明显优于之前的模型。

决策树在Python中的实现

Image(graph.create_png())

结果:

b2b401ca4fee294f379674e74e67f001.png

Python输出

这个修剪过的模型的结果看起来很容易解释。有了这个,我们就能够对数据进行分类,并预测一个人是否患有糖尿病。但是,决策树并不是你可以用来提取这些信息的唯一技术,你还可以探索其他各种方法。

如果你想学习和实现这些算法,那么你应该探索通过辅助方法学习,并得到专业人士的1对1指导。拓端数据科学职业轨道计划保证了1:1的指导,项目驱动的方法,职业辅导,提供实习工作项目保证,来帮助你将职业生涯转变为数据驱动和决策的角色。请联系我们以了解更多信息!

数据获取

在下面公众号后台回复“糖尿病”,可免费获取完整数据。


d4a265742f206670095d03bb78216333.png

本文摘选PYTHON用决策树分类预测糖尿病和可视化实例,点击“阅读原文”获取全文完代码和数据资料。

252a54c5a704024b762a7b96409bf811.jpeg

本文中的糖尿病数据分享到会员群,扫描下面二维码即可加群!

9b786a7c79735b935e5b7b50f6c694c8.png

点击标题查阅往期内容

样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化

SAS分类决策树预测贷款申请评分剪枝和结果可视化

分类回归决策树交互式修剪和更美观地可视化分析细胞图像分割数据集

PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯和KMEANS聚类用户画像

PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化

Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析

PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化

R语言集成模型:提升树boosting、随机森林、约束最小二乘法加权平均模型融合分析时间序列数据

Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析

R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化

R语言基于树的方法:决策树,随机森林,Bagging,增强树

R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测

spss modeler用决策树神经网络预测ST的股票

R语言中使用线性模型、回归决策树自动组合特征因子水平

R语言中自编基尼系数的CART回归决策树的实现

R语言用rle,svm和rpart决策树进行时间序列预测

python在Scikit-learn中用决策树和随机森林预测NBA获胜者

python中使用scikit-learn和pandas决策树进行iris鸢尾花数据分类建模和交叉验证

R语言里的非线性模型:多项式回归、局部样条、平滑样条、 广义相加模型GAM分析

R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类

R语言ISLR工资数据进行多项式回归和样条回归分析

R语言中的多项式回归、局部回归、核平滑和平滑样条回归模型

R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量

R语言分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测

R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化

如何用R语言在机器学习中建立集成模型?

R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测

在python 深度学习Keras中计算神经网络集成模型

R语言ARIMA集成模型预测时间序列分析

R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林分析心脏病患者

R语言基于树的方法:决策树,随机森林,Bagging,增强树

R语言基于Bootstrap的线性回归预测置信区间估计方法

R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间

R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化

Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析

R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析

R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化

Matlab建立SVM,KNN和朴素贝叶斯模型分类绘制ROC曲线

matlab使用分位数随机森林(QRF)回归树检测异常值

8d971a0d96c79fa3400b636cba8b53cb.png

7c41ceaea8426f74598a6fbf7e678402.jpeg

916f08280977bb0d9104bf88f6725e94.png

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

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

相关文章

大一学生WEB前端静态网页——唯品会1页 包含hover效果

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 在线商城购物 | 水果商城 | 商城系统建设 | 多平台移动商城 | H5微商城购物商城项目 | HTML期末大学生网页设计作业,Web大学生网页 HTML&a…

SpringCloud:使用Nacos作为配置中心

目录 一、nacos配置中心简介 二、nacos配置实时更新及同一个微服务不同环境的差异化配置 准备工作 针对商品微服务实现实时更新(以商品微服务为例) 三、nacos同一个微服务不同环境的共享配置 同一个微服务修改配置才能访问不同环境 四、nacos不同微…

【JavaEE】MyBatis

文章目录1.MyBatis介绍2.MyBatis快速入门3.Mapper代理开发4.MyBatis核心配置文件5.配置文件完成增删改查5.1 查询5.2 添加/修改5.3 删除6.MyBatis参数传递7.注解完成增删改查1.MyBatis介绍 1.什么是MyBatis? MyBatis是一款优秀的 持久层框架,用于简化JDBC开发MyBat…

STC 51单片机46——看门狗测试

#include <reg52.h> sfr WDT_CONTR 0xE1; //声明WDT_CONTR void delay(void){ //改变延时长度&#xff0c;可以观测是否触发看门狗 unsigned char i,j,k; for(i0;i<255;i) for(j0;j<255;j) for(k0;k<255;k); } void…

图神经网络

前言 图与图的表示 图是由一些点和一些线构成的&#xff0c;能表示一些实体之间的关系&#xff0c;图中的点就是实体&#xff0c;线就是实体间的关系。如下图&#xff0c;v就是顶点&#xff0c;e是边&#xff0c;u是整张图。attrinbutes是信息的意思&#xff0c;每个点、每条…

MFC界面控件BCGControlBar v33.3 - 升级Ribbon Bar自定义功能

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中&#xff0c;并为您节省数百个开发和调试时间。 该版本包含了增强的Ribbon自定义、新的日期/时间数字指示器、带有文本对齐的组控件、多行支持以及其他一些新功…

第二证券|12月A股投资方向来了!这些板块已先涨为敬

日前&#xff0c;我国银河、信达证券、中泰证券、安全证券等多家券商连续发布12月A股月度出资组合。全体上券商对后市持活跃情绪&#xff0c;以为当时商场处于震动磨底装备区间&#xff0c;商场动摇并不影响“暖冬行情”的延续&#xff0c;一些活跃的券商以为后市有望走出季度级…

R语言rcurl抓取问财财经搜索网页股票数据

问财财经搜索是同花顺旗下的服务之一,主要针对上市公司的公告、研报、即时新闻等提供搜索及参考资料。相对于其他股票软件来说&#xff0c;一个强大之处在于用自然语言就可以按你指定的条件进行筛选。而大部分现有的行情软件支持的都不是很好&#xff0c;写起来就费尽心思&…

Nginx加载Lua脚本链接mysql

1、nginx加载lua脚本方法可参我的这篇文章 Nginx安装Openresty加载Lua代码_IT东东歌的博客-CSDN博客 2、测试代码 官网 https://github.com/openresty/lua-resty-mysql local mysql require "resty.mysql" local db, err mysql:new() if not db then ngx.sa…

Django 第四章 模版系统详解(ORM数据模型-使用mysql数据库增删改查)

djiango模版系统&#xff1a; 用于自动渲染一个文本文件&#xff0c;一般用于HTML页面&#xff0c;模版引擎渲染的最终HTML内容返回给客户端浏览器 模版系统分成两部分 静态部分&#xff1a; 例如html css .js 动态部分 djiango 模版语言&#xff0c;类似于jinja语法变量定义&…

SpringCloud 组件Gateway服务网关【全局过滤器】

目录 1&#xff0c;全局过滤器 1.1&#xff1a;全局过滤器作用 1.2&#xff1a;自定义全局过滤器 1.3&#xff1a;过滤器执行顺序、 2&#xff1a;跨域问题 2.1&#xff1a;什么是跨域问题 2.2&#xff1a;示例跨域问题 2.3&#xff1a;解决跨域问题 1&#xff0c;全局…

python将CSV文件(excel文件)按固定行数拆分成小文件

最近接到一个需求&#xff0c;就是把非常大的CSV文件&#xff0c;电脑根本打不开&#xff08;或者打开也不能完全展现所有的数据&#xff09;&#xff0c;以每 80万(不够80万行的也独自成为一个单独的文件) 行进行拆分成一个小文件&#xff0c;各位小伙伴在日常工作中有没有遇到…

seata分布式事务1.4版本TM注册全局事务之源码分析(五)

今天我们分析seata分布式事务1.4版本TM注册到全流程的源码&#xff0c;这也是事务执行的核心开始&#xff1a; 首先分为客户端TM和服务端TC&#xff0c;业务发起肯定在TM端&#xff0c;接受在TC端。 整体类图&#xff1a; 一、业务入口TM端&#xff1a; 1、GlobalTransactio…

将本地文件上传到gitee和GitHub,以及Github加速访问

&#xff08;1&#xff09;我全程使用网络上合法加速软件&#xff0c;网易UU加速器是网易自主研发极速引擎&#xff0c;属于合法软件。我们进行加速行为也只是针对于Github这一个网站。 &#xff08;2&#xff09;GitHub是一个面向开源及私有软件项目的托管平台&#xff0c;纯技…

Win,M1Mac上安装jupyter的MATLAB支持插件的方法

tags: MATLAB Win Mac Tips 写在前面 11月的最后一天了, 总结一下支持MATLAB的一个jupyter的插件, 有了这个你就可以在jupyter notebook或者jupyter lab上面使用MATLAB语句了, 还是很不错的, 虽然我安装了好久… 下面来说一下我在我的电脑以及朋友的电脑(Win11)上面安装这个…

安科瑞安全用电监测,智慧用电装置,导轨式安装带无线通讯功能

安科瑞 王晶淼/司红霞 前言 随着电气化的迅猛发展和用电普及程度的日益提高,电已经成为人类生存和发展必不可少的能源之一。然而,由于种种原因,由电气引发的火灾和爆炸事故也直呈现上升趋势。电气设备的绝缘大量使用塑料、橡胶、绝缘漆、稀释剂等易燃物品,在电气设备运行中,由…

【Redis】数据结构---String

文章目录String(字符串)1.Redis 键(key)2.String(字符串)2.1常用命令2.2.String底层结构3.空间分配策略3.1空间预分配3.2惰性空间释放3.3为什么SDS的最大长度是512M?4.SDS面试题String(字符串) 1.Redis 键(key) keys *查看当前库所有key (匹配&#xff1a;keys *1)exists ke…

使用并行流的注意事项

遇到的问题&#xff1a;当时用并行流的时候期望结果7&#xff0c;但是偶尔会有结果不对的情况。。。 如下代码&#xff1a; public static void main(String[] args) {long startSystem.currentTimeMillis();List<String> alist new ArrayList<String>(Arrays.a…

【读书笔记】打开心智

打开心智 0&#xff0c;写在前面 什么是打开心智&#xff1f;我认为是通过更好的认识人类&#xff0c;认识自己&#xff0c;了解自己的本性&#xff0c;然后顺应本性指导和改变自己对事物的看法&#xff0c;约束自己的行为的过程。这也是一个认识心智到打开心智的过程。其实我…

代码随想录刷题|LeetCode 121. 买卖股票的最佳时机 122.买卖股票的最佳时机II

目录 121. 买卖股票的最佳时机 思路 暴力解法 贪心算法 动态规划 买卖股票的最佳时机 贪心算法 动态规划 122.买卖股票的最佳时机II 思路 分析递推公式 买卖股票的最佳时机II 贪心算法 动态规划 121. 买卖股票的最佳时机 题目链接&#xff1a;力扣 思路 暴力解法 暴力解答会超…