Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据分享|PYTHON用决策树分类预测糖尿病和可视化实例|附代码数据

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

原创
作者头像
拓端
发布于 2023-06-22 02:42:10
发布于 2023-06-22 02:42:10
39100
代码可运行
举报
文章被收录于专栏:拓端tecdat拓端tecdat
运行总次数:0
代码可运行

全文下载链接: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. 为我们的决策树分析导入所需的库并拉入所需的数据
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 加载库
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)

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pima.head()
  1. 在加载数据后,我们了解结构和变量,确定目标变量和特征变量(分别为因变量和自变量)。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#在特征和目标变量中拆分数据集
X = pima[feature] # 特征
y = pima.label # 目标变量
  1. 我们把数据按70:30的比例分成训练集和测试集。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 将数据集分成训练集和测试集
train_test_split(X, y, test_size=0.3, random_state=1) # 70%的训练和30%的测试

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

  1. 使用scikit learn进行决策树分析
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 创建决策树分类器对象
clf = DecisionTreeClassifier()
  1. 估计分类器预测结果的准确程度。准确度是通过比较实际测试集值和预测值来计算的。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 模型准确率,分类器正确的概率是多少?
print("准确率:",metrics.accuracy_score(y_test, y_pred))

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

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

决策树的可视化。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Image(graph.create_png())

Python输出

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

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

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

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

  • 标准:默认="gini"
  • splitter:字符串,可选(默认="best")或分割策略。选择分割策略。可以选择 "best"来选择最佳分割,或者选择 "random"来选择最佳随机分割。
  • max_depth: int或None,可选(默认=None)或树的最大深度 这个参数决定了树的最大深度。这个变量的数值越高,就会导致过度拟合,数值越低,就会导致拟合不足。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 创建决策树分类器对象
DecisionTree( max_depth=3)

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

决策树在Python中的实现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Image(graph.create_png())

结果:

Python输出

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

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PYTHON用决策树分类预测糖尿病和可视化实例
决策树是对例子进行分类的一种简单表示。它是一种有监督的机器学习技术,数据根据某个参数被连续分割。决策树分析可以帮助解决分类和回归问题。
拓端
2022/03/09
9680
PYTHON用决策树分类预测糖尿病和可视化实例
手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病
大数据文摘作品 作者:Susan Li 编译:袁雪瑶、吴双、姜范波 根据美国疾病控制预防中心的数据,现在美国1/7的成年人患有糖尿病。但是到2050年,这个比例将会快速增长至高达1/3。我们在UCL机器学习数据库里一个糖尿病数据集,希望可以通过这一数据集,了解如何利用机器学习来帮助我们预测糖尿病,让我们开始吧! 数据集github链接:https://github.com/susanli2016/Machine-Learning-with-Python/blob/master/diabetes.csv 数
大数据文摘
2018/05/24
5.2K0
机器学习 | 决策树模型(二)实例
上面文章《决策树模型(一)理论》中,已详细介绍了决策树原理,包括决策树生长原理,决策树的特征选择原理,决策树剪枝策略以及决策树处理缺失值原理等等。如果您还没有阅读,可点击跳转,或关注公众号<数据STUDIO>获取文章详情。
数据STUDIO
2021/06/24
1.1K0
用随机森林预测糖尿病:从数据到模型
文章链接:https://cloud.tencent.com/developer/article/2470427
远方2.0
2024/11/26
2730
用随机森林预测糖尿病:从数据到模型
机器学习之梯度提升决策树(GBDT)
1.GBDT算法简介 GBDT(Gradient Boosting Decision Tree)是一种迭代的决策树算法,由多棵决策树组成,所有树的结论累加起来作为最终答案,我们根据其名字(Gradient Boosting Decision Tree)来展开推导过程。决策树(Decision Tree)我们已经不再陌生,在之前介绍到的机器学习之决策树(C4.5算法)、机器学习之分类与回归树(CART)、机器学习之随机森林中已经多次接触,在此不再赘述。但Boosting和Gradient方法是什么含义呢,又如
小一
2019/08/14
4.6K0
机器学习之梯度提升决策树(GBDT)
机器学习三人行-神奇的分类回归决策树
系列五我们一起学习并实战了支持向量机的分类和回归,见下面链接: 文末附代码关键字,回复即可下载。 今天,我们一起学习下决策树算法,该算法和SVM一样,既可以用来分类,也可以用来回归。之前系列的文章,我们大多都是先学原理,再来实战,今天我们反着走一遭,先来实战,再看原理。因为决策树这个算法的模型是可以可视化的,所以看过模型之后,再去理解原理会easy些。今天的主要内容如下: 决策树分类实战 决策树算法简介 决策树回归实战 决策树稳定性分析 一. 决策树分类实战 决策树其实是一种很容易理解的一种算法,我们来
企鹅号小编
2018/02/06
1.8K0
机器学习三人行-神奇的分类回归决策树
深入了解决策树---机器学习中的经典算法
决策树(Decision Tree)是一种重要的机器学习模型,以直观的分层决策方式和简单高效的特点成为分类和回归任务中广泛应用的工具。作为解释性和透明性强的算法,决策树不仅适用于小规模数据,也可作为复杂模型的基石(例如随机森林、梯度提升树)。本文深入探讨决策树的数学原理、构建方法及高级应用,并通过Python示例展示如何优化决策树的性能。
用户11292525
2024/11/27
4880
独家 | 使用Python了解分类决策树(附代码)
本教程介绍了用于分类的决策树,即分类树,包括分类树的结构,分类树如何进行预测,使用scikit-learn构造分类树,以及超参数的调整。
数据派THU
2019/10/10
2.7K0
独家 | 使用Python了解分类决策树(附代码)
算法金 | 决策树、随机森林、bagging、boosting、Adaboost、GBDT、XGBoost 算法大全
决策树是一种简单直观的机器学习算法,它广泛应用于分类和回归问题中。它的核心思想是将复杂的决策过程分解成一系列简单的决策,通过不断地将数据集分割成更小的子集来进行预测。本文将带你详细了解决策树系列算法的定义、原理、构建方法、剪枝与优化技术,以及它的优缺点。
算法金
2024/06/25
7180
算法金 | 决策树、随机森林、bagging、boosting、Adaboost、GBDT、XGBoost 算法大全
从决策树到GBDT梯度提升决策树和XGBoost
决策树可以转换成if-then规则的集合,也可以看作是定义在特征空间划分类的条件概率分布。决策树学习算法包括三部分:特征选择,数的生成和数的剪枝。最大优点: 可以自学习。在学习的过程中,不需要使用者了解过多背景知识,只需要对训练实例进行较好的标注,就能够进行学习。显然,属于有监督学习。 常用有一下三种算法:
大鹅
2021/06/15
1.2K0
从决策树到GBDT梯度提升决策树和XGBoost
基于决策树的红酒分类可视化
决策树Decision Tree是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规 则,并用树状图的结构来呈现这些规则,以解决分类和回归问题 。
皮大大
2021/03/02
1.6K0
Python基础算法解析:决策树
决策树是一种常用的机器学习算法,既可以用于分类问题,也可以用于回归问题。它的工作原理类似于人类的决策过程,通过对特征的问询逐步进行分类或者预测。本文将详细介绍决策树的原理、实现步骤以及如何使用Python进行编程实践。
Echo_Wish
2024/03/20
3680
数据分享|逻辑回归、随机森林、SVM支持向量机预测心脏病风险数据和模型诊断可视化|附代码数据
世界卫生组织估计全世界每年有 1200 万人死于心脏病。在美国和其他发达国家,一半的死亡是由于心血管疾病
拓端
2023/01/11
1.3K0
机器学习与数据科学决策树指南
还在为如何抉择而感到纠结吗?快采用决策树(Decision Tree)算法帮你做出决定吧。决策树是一类非常强大的机器学习模型,具有高度可解释的同时,在许多任务中也有很高的精度。决策树在机器学习模型领域的特殊之处在于其信息表示的很清楚,而不像一些机器学习方法是个黑匣子,这是因为决策树通过训练学到的“知识”直接形成层次结构,该结构以这样的方式保存和显示学到的知识,即使是非专业人士也可以容易地弄明白。
用户3578099
2019/08/15
6620
从零开始在Python中实现决策树算法
原文地址:https://machinelearningmastery.com/implement-decision-tree-algorithm-scratch-python/
Steve Wang
2018/02/02
3.4K1
从零开始在Python中实现决策树算法
用dtreeviz实现决策树可视化
作者 | Eryk Lewinson 编译 | VK 来源 | Towards Data Science
磐创AI
2021/04/21
2.6K0
用dtreeviz实现决策树可视化
Kaggle 神器 xgboost
在 Kaggle 的很多比赛中,我们可以看到很多 winner 喜欢用 xgboost,而且获得非常好的表现,今天就来看看 xgboost 到底是什么以及如何应用。 本文结构: 什么是 xgboost? 为什么要用它? 怎么应用? 学习资源 ---- 什么是 xgboost? XGBoost :eXtreme Gradient Boosting 项目地址:https://github.com/dmlc/xgboost 是由 Tianqi Chen http://homes.cs.washington.ed
杨熹
2018/04/03
1.4K0
Kaggle 神器 xgboost
数据分享|逻辑回归、随机森林、SVM支持向量机预测心脏病风险数据和模型诊断可视化|附代码数据
世界卫生组织估计全世界每年有 1200 万人死于心脏病。在美国和其他发达国家,一半的死亡是由于心血管疾病
拓端
2023/02/09
1.1K0
Xgboost初见面
在 Kaggle 的很多比赛中,我们可以看到很多 winner 喜欢用 XGBoost,而且获得非常好的表现,今天就来看看 XGBoost到底是什么以及如何应用。 本文结构: 什么是XGBoost? 为什么要用它? 怎么应用? 学习资源 什么是 XGBoost? XGBoost :eXtreme Gradient Boosting 项目地址:https://github.com/dmlc/xgboost 是由 Tianqi Chen http://homes.cs.washington.edu/~tqc
IT派
2018/03/28
1K0
Xgboost初见面
决策树之ID3、C4.5、C5.0等五大算法及python实现
版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! https://blog.csdn.net/sinat_26917383/article/details/47617801
悟乙己
2019/05/28
2.7K0
推荐阅读
相关推荐
PYTHON用决策树分类预测糖尿病和可视化实例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验