码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数据分享|PYTHON用决策树分类预测糖尿病和可视化实例


    全文下载链接: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. 为我们的决策树分析导入所需的库并拉入所需的数据

    1. # 加载库
    2. from sklearn.model\_selection import train\_test\_split #导入 train\_test_split 函数
    3. from sklearn import metrics #导入scikit-learn模块以计算准确率
    4. # 载入数据集
    5. data = pd.read\_csv("diabs.csv", header=None, names=col\_names)

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

    pima.head()

    0eddfb4da928389ab1c07c3e6930d414.png

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

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

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

    1. # 将数据集分成训练集和测试集
    2. 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进行决策树分析

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

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

    1. # 模型准确率,分类器正确的概率是多少?
    2. 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。

    1. # 创建决策树分类器对象
    2. 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

  • 相关阅读:
    当边缘计算用在定位设备
    软件设计师--数据结构考点细节总结
    通义千问1.5(Qwen1.5)大语言模型在PAI-QuickStart的微调与部署实践
    JAVA-----抽象类和接口
    云原生Kubernetes:K8S集群版本升级(v1.20.15 - v1.22.14)
    C++学习路线(二十五)
    Gin + Element + 云IDE 挑战一小时打造春联生成平台
    现在的程序员真是越来越懒了,api 文档都懒得写!程序员:“api工具惯的”
    go-10-字符串操作
    分布式IO系统BL201 Profinet耦合器
  • 原文地址:https://blog.csdn.net/tecdat/article/details/128108060
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号