遇见困难不用“怂”,机器学习的“万能药”:决策树

简介:

决策树是监督机器学习算法家族的一员,被认为是解决所有数据科学问题的万能药。数据科学家经常说一些俏皮话:"每当问题的陈述让你陷入困境,你想不出任何算法来解决它(不管情况如何),就使用决策树!"。

image

通常情况下,无论是在行业中还是在kaggle比赛中,都可以看到决策树或者说至少是从它演变而来的算法(Bagging,Boosting ensemble)。

决策树是一种多用途的机器学习方法,能够执行回归和分类任务。几乎所有的现实世界问题本质上都是非线性的,决策树可以帮助您摆脱非线性的困境。这种算法简洁明了、易于理解,并且可以直观地进行解释——这是每个企业首先需要的东西。

人们可以从模型中获得什么?

决策树是上下颠倒的,意思是它的根在顶部,叶在底部。决策树主要相信分而治之的规则。

基本术语

让我们来看看决策树使用的基本术语:

image

1.根结点:它代表整个种群或样本,并进一步分成两个或多个的同类集合。

2.分裂:将一个节点分成两个或多个子节点的过程。

3.决策节点:当一个子节点分裂成更多的子节点时,它被称为决策节点。

4.叶/终端节点:不进一步分割的节点称为叶节点或终端节点。

5.修剪:当我们删除决策节点的子节点时,这个过程被称为修剪。

6.分支/子树:整个树的一个分支称为分支或子树。

7.父节点和子节点:被划分为子节点的节点被称为子节点的父节点,其中子节点是父节点的子节点。

分类

有两种类型的决策树:

A.分类决策树

B.回归决策树

分类决策树帮助您对数据进行分类,因此它可以处理分类数据,例如贷款状态(已批准/未批准)、垃圾邮件/而非垃圾邮件等。
回归决策树旨在帮助您预测结果,例如某人的收入、房屋的销售价格等。

image

假设有两个特征X和Y,在右面板中您可以看到有几个数据点分散。绿色和灰色叶子是因变量中的两类。决策树所要做的是将整个数据集在若干次迭代分割成几个部分。如图所示,在X = 0.5处有分裂1,在Y = 0.5处有分裂2,在X = 0.25处有分裂3。

分割是为了使每个分割中的某个类别的数量最大化,这意味着决策树试图在每个节点上实现均匀分布。从右侧面板您可以看到,绿色叶子类和灰色叶子类在每个隔间的末端都形成了均匀结构。

背后的数学算法

决策树用于分割节点的方法有很多。最常见的是基尼指数、熵、卡方系数等。

1.基尼指数

根据它,如果我们随机选择一个总体中的两个项目,那么它们一定是相同的类别,如果种体是纯种的,则概率为1。
它是一种杂质的衡量标准。因此,基尼指数的值越低,同质性越高。
数学表示为

image

其中P是该节点中正样本的比例。

基尼指数为'0'表示该节点是纯粹的,这意味着不需要进行进一步分割。
涉及的步骤 :
使用公式计算子节点的Gini。

使用该分割的每个节点的加权基尼分数计算分割的基尼

2.卡方系数

有助于发现子节点和父节点之间差异的统计显著性。
我们用目标变量的观测频率和预期频率之间标准化差异的平方和来衡量它。
数学表示为

image

它可以衡量纯度,因此,卡方值越高,子节点与父节点差异的统计显著性越高。
涉及的步骤:
通过计算成功和失败的偏差来计算单个节点的卡方

使用所有分割的每个节点的成功和失败的卡方的和来计算分割的卡方

3.熵

•它是正在处理的信息中的随机性的度量。

•熵越高,从这些信息中得出任何结论就越难。

•数学表示为

image

这里p和q分别是该节点成功和失败的概率。
Log以2为底。
涉及的步骤:
计算父节点的熵

计算split的每个单独节点的熵并计算split中可用的所有子节点的加权平均值。

4.减小方差

上面提到的所有方法都与分类决策树有关。在目标变量连续的回归决策树的情况下,遵循方差减少法。
它使用标准的方差公式来选择最佳分割。选择较低方差的分组作为划分种群的标准。
数学表示为

image

其中,X - >实际值、X - >平均值、N - >观测值的数量

涉及的步骤:

计算每个节点的方差。
计算每个分割的方差作为每个节点方差的加权平均值。
让我们举一个例子:

问题陈述

我们有一个50人的样本,其中有三个变量,性别(M / F)、就业状况(学生/工作)和年龄(岁)
其中有50人正计划观看电影。
现在,我们想创建一个模型来预测谁会看电影?在这个问题中,我们需要根据三者输入变量将样本来预测谁将观看电影。
为了简单起见,年龄特征被转化为> 28和<28。

image

  1. 基尼指数

image

观看电影的观众:26

不看电影的观众:24

基于性别的分割

image

image

观看敦刻尔克的男性的概率:0.429

观看敦刻尔克的女性的概率:0.636

image

基尼(女):0.463

基尼(男):0.490

image

性别的加权基尼:0.4779

基于就业的分割
image

观看的学生概率:0.444

观看的工作人员概率:0.537

image

基尼(学生):0.494

基尼(工作):0.497

image

加权基尼(就业):0.4967

基于年龄的分割

image

年龄小于28岁的人的概率:0.607

年龄超过28岁的人的概率:0.409

image

基尼(小于28岁的人):0.477

基尼(28岁以上的人):0.483

image

加权基尼(年龄):0.4799

由于加权基尼(性别)<加权基尼(年龄)<加权基尼(就业),节点分割将采用性别

  1. 卡方系数

性别节点
image
image

就业节点

image

年龄节点

image

由于卡方性别<卡方年龄<卡方权,节点分割将采用性别
3.熵

性别节点

image

就业节点

image

年龄节点

image

由于熵性别<熵年龄<熵权,节点分割将采用性别
可视化

如前所述,决策树是可解释的并且可以被可视化。Graphviz库在开发python时来帮助数据科学家。

作者试图用IRIS数据集来显示下面显示的决策树和图表,这是通过代码实现的,您甚至不必在您的机器上下载Graphviz。

image

有什么收获?

建模决策树时最大的危险是它们倾向于过度拟合。如果在决策树上没有限制,那么它将为您提供100%的训练集准确性,因为在哪怕是在最糟糕的情况下,它也会为每个观察结果创建1个终端节点。

因此,在建模决策树时防止过拟合是关键,它可以通过两种方式完成:

A. 设置对决策树大小的限制(超参数调整)

B. 修剪树
image

原文发布时间为:2018-06-04

本文来自云栖社区合作伙伴“AI全球动态”,了解相关信息可以关注“AI全球动态””。

相关文章
|
2月前
|
机器学习/深度学习 存储 算法
决策树和随机森林在机器学习中的应用
在机器学习领域,决策树(Decision Tree)和随机森林(Random Forest)是两种非常流行且强大的分类和回归算法。它们通过模拟人类决策过程,将复杂的数据集分割成易于理解和处理的子集,从而实现对新数据的准确预测。
93 10
|
2月前
|
机器学习/深度学习 数据采集 监控
探索机器学习:从数据到决策
【9月更文挑战第18天】在这篇文章中,我们将一起踏上一段激动人心的旅程,穿越机器学习的世界。我们将探讨如何通过收集和处理数据,利用算法的力量来预测未来的趋势,并做出更加明智的决策。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和思考方式。
|
2月前
|
机器学习/深度学习 算法 Python
从菜鸟到大师:一棵决策树如何引领你的Python机器学习之旅
【9月更文挑战第9天】在数据科学领域,机器学习如同璀璨明珠,吸引无数探索者。尤其对于新手而言,纷繁复杂的算法常让人感到迷茫。本文将以决策树为切入点,带您从Python机器学习的新手逐步成长为高手。决策树以其直观易懂的特点成为入门利器。通过构建决策树分类器并应用到鸢尾花数据集上,我们展示了其基本用法及效果。掌握决策树后,还需深入理解其工作原理,调整参数,并探索集成学习方法,最终将所学应用于实际问题解决中,不断提升技能。愿这棵智慧之树助您成为独当一面的大师。
44 3
|
2月前
|
机器学习/深度学习 算法 Python
决策树下的智慧果实:Python机器学习实战,轻松摘取数据洞察的果实
【9月更文挑战第7天】当我们身处数据海洋,如何提炼出有价值的洞察?决策树作为一种直观且强大的机器学习算法,宛如智慧之树,引领我们在繁复的数据中找到答案。通过Python的scikit-learn库,我们可以轻松实现决策树模型,对数据进行分类或回归分析。本教程将带领大家从零开始,通过实际案例掌握决策树的原理与应用,探索数据中的秘密。
47 1
|
3月前
|
机器学习/深度学习 算法 数据挖掘
【白话机器学习】算法理论+实战之决策树
【白话机器学习】算法理论+实战之决策树
|
3月前
|
机器学习/深度学习 算法 自动驾驶
揭秘机器学习模型的决策之道
【8月更文挑战第22天】本文将深入浅出地探讨机器学习模型如何从数据中学习并做出预测。我们将一起探索模型背后的数学原理,了解它们是如何被训练以及如何对新数据进行预测的。文章旨在为初学者提供一个清晰的机器学习过程概述,并启发读者思考如何在自己的项目中应用这些技术。
|
3月前
|
机器学习/深度学习 算法 搜索推荐
基于机器学习的用户行为分析:深入洞察与精准决策
【8月更文挑战第3天】基于机器学习的用户行为分析为企业提供了深入了解用户需求、优化产品设计和制定精准营销策略的有力工具。随着人工智能和大数据技术的不断发展,用户行为分析将更加智能化和个性化。未来,我们可以期待更加高效、精准的机器学习算法和模型的出现,以及更多创新性的应用场景的拓展。同时,也需要关注数据隐私和安全性问题,确保用户数据的安全和合规使用。
|
3月前
|
机器学习/深度学习 算法 Python
决策树下的智慧果实:Python机器学习实战,轻松摘取数据洞察的果实
【8月更文挑战第3天】在数据的海洋中探寻真知,决策树犹如智慧之树,以其直观易懂的强大功能,引领我们逐步缩小决策范围,轻松获取数据洞察。本篇将带您踏上Python机器学习之旅,从理解决策树为何受青睐开始,通过scikit-learn库实现鸢尾花数据集分类,解析其决策机制,并掌握调参技巧,最终优化模型性能,共同摘取数据科学的甜美果实。
50 1
|
3月前
|
机器学习/深度学习 数据可视化 算法
决策树VS世界:掌握Python机器学习中的这棵树,决策从此不再迷茫
【8月更文挑战第2天】在数据驱动时代,决策树作为一种直观且易于解释的机器学习方法,因其强大的分类与回归能力备受青睐。本文介绍决策树的基础概念:通过属性测试划分数据,优化选择以提高预测准确度。使用Python的scikit-learn库,我们演示了如何加载鸢尾花数据集,构建并训练决策树模型,评估其准确性,以及利用`plot_tree`函数可视化决策过程,从而更好地理解模型的工作原理。掌握这些技能,你将在面对复杂决策时更加自信。
25 2
|
3月前
|
机器学习/深度学习 算法 Python
从菜鸟到大师:一棵决策树如何引领你的Python机器学习之旅
【8月更文挑战第1天】在数据科学领域,机器学习如同璀璨明珠,而决策树则以其直观易懂成为入门利器。本文引导初学者利用Python的`scikit-learn`库构建决策树模型。以鸢尾花数据集为例,展示了从加载数据、划分训练/测试集、创建`DecisionTreeClassifier`、训练模型到评估准确率的全过程。掌握这些基本操作后,还需深入理解信息增益、基尼不纯度等原理,学会调参优化,并探索集成学习方法如随机森林和梯度提升树,最终将理论应用于实践,成长为真正的机器学习大师。
36 2
下一篇
无影云桌面