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

简介: 数据分享|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. 为我们的决策树分析导入所需的库并拉入所需的数据

# 加载库
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()

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。


点击标题查阅往期内容


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


01

02

03

04


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

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

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

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

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

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

决策树的可视化。

Image(graph.create_png())

Python输出


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


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


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

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

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

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

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

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

决策树在Python中的实现

Image(graph.create_png())

结果:


Python输出


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

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

相关文章
|
2月前
|
前端开发 搜索推荐 编译器
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
137 34
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
|
2月前
|
人工智能 编译器 Python
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
59 0
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
|
3月前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
227 5
|
3月前
|
数据可视化 编译器 Python
Manim:数学可视化的强大工具 | python小知识
Manim(Manim Community Edition)是由3Blue1Brown的Grant Sanderson开发的数学动画引擎,专为数学和科学可视化设计。它结合了Python的灵活性与LaTeX的精确性,支持多领域的内容展示,能生成清晰、精确的数学动画,广泛应用于教育视频制作。安装简单,入门容易,适合教育工作者和编程爱好者使用。
755 7
|
4月前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
167 5
|
4月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。
|
4月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
130 0
|
4月前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
81 2
|
4月前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
93 2
|
4月前
|
数据采集 数据可视化 数据挖掘
Python数据分析:Pandas库实战指南
Python数据分析:Pandas库实战指南

热门文章

最新文章