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

简介:

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

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全球动态””。

相关文章
|
13天前
|
机器学习/深度学习 数据采集 算法
【阿旭机器学习实战】【35】员工离职率预测---决策树与随机森林预测
【阿旭机器学习实战】【35】员工离职率预测---决策树与随机森林预测
|
7天前
|
机器学习/深度学习 人工智能 算法
【机器学习】Q-Learning算法:在序列决策问题中的实践与探索
【机器学习】Q-Learning算法:在序列决策问题中的实践与探索
19 0
【机器学习】Q-Learning算法:在序列决策问题中的实践与探索
|
29天前
|
机器学习/深度学习 传感器 人工智能
【机器学习】 人工智能和机器学习辅助决策在空战中的未来选择
【机器学习】 人工智能和机器学习辅助决策在空战中的未来选择
|
7天前
|
机器学习/深度学习 人工智能 算法
【机器学习】AI在空战决策中的崛起:从理论到实践的跨越
【机器学习】AI在空战决策中的崛起:从理论到实践的跨越
18 0
|
29天前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】机器学习:人工智能中实现自动化决策与精细优化的核心驱动力
【机器学习】机器学习:人工智能中实现自动化决策与精细优化的核心驱动力
|
13天前
|
机器学习/深度学习 数据可视化 算法
【阿旭机器学习实战】【36】糖尿病预测---决策树建模及其可视化
【阿旭机器学习实战】【36】糖尿病预测---决策树建模及其可视化
|
28天前
|
机器学习/深度学习 算法 API
【机器学习】Python中的决策树算法探索
决策树作为机器学习中的一种基础且强大的算法,因其易于理解和实现、能够处理分类和回归任务的特性而广受欢迎。本文旨在深入浅出地介绍决策树算法的基本原理,并通过Python编程语言实践其应用,帮助读者掌握如何利用Python构建及优化决策树模型。本文预计分为以下几个部分:决策树基础理论、Python中实现决策树的库介绍、实战案例分析、模型评估与调优方法,以及决策树算法的局限性与未来展望。
30 0
|
1月前
|
机器学习/深度学习 算法
机器学习——决策树
机器学习——决策树
|
3天前
|
机器学习/深度学习 人工智能 算法
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集('蜜蜂', '甲虫', '蝴蝶', '蝉', '蜻蜓', '蚱蜢', '蛾', '蝎子', '蜗牛', '蜘蛛')进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django搭建Web网页端可视化操作界面,实现用户上传一张昆虫图片识别其名称。
107 7
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
|
4天前
|
机器学习/深度学习 人工智能 算法
算法金 | 统计学的回归和机器学习中的回归有什么差别?
**摘要:** 统计学回归重在解释,使用线性模型分析小数据集,强调假设检验与解释性。机器学习回归目标预测,处理大数据集,模型复杂多样,关注泛化能力和预测误差。两者在假设、模型、数据量和评估标准上有显著差异,分别适用于解释性研究和预测任务。
28 8
算法金 | 统计学的回归和机器学习中的回归有什么差别?