机器学习算法——决策树

本文深入探讨了决策树的构建过程,包括特征选择、信息增益、信息增益比和基尼指数等概念。介绍了ID3、C4.5、CART等决策树生成算法,以及梯度提升决策树(GBDT)和随机森林的原理。同时,讨论了决策树剪枝以减少过拟合,并对比了不同决策树算法之间的区别。
摘要由CSDN通过智能技术生成

1.什么是决策树?

决策树是一种基本的分类与回归方法,分类问题的决策树是基于树结构对数据进行划分,表示基于特征对实例进行分类的过程。广泛应用于金融分控、医疗辅助诊断等诸多行业。

决策树的步骤:
特征的选取 —>决策树的生成 —>决策树的修剪

决策树表示一个条件概率分布,可以用if-else规则表示,每个实例都被且只被一条路径或一个规则所覆盖。

2.决策树的构建

决策树的构建过程是一个递归过程,采用递归的方式选择最优特征,并根据所选择的特征对训练数据进行分割,使各个子数据集有一个最好的分类。伪代码如下:
在这里插入图片描述
函数存在三种返回状态:(1)当前节点包含的样本全部属于同一类别,无需继续划分;(2)当前属性集为空或者所有样本在某个属性上的取值相同,无法继续划分;(3)当前节点包含的样本集合为空,无法划分。

2.1特征选择

进行特征选择,是希望通过一个特征所分类得结果是有分类能力得,跟随机生成得结果能够有所差别。
特征选择是决定用哪个特征来划分特征空间。通常以信息增益和信息增益比作为特征选择的准则。

2.2信息增益

特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即: g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)等价于训练数据集D中类与特征的互信息。
根据信息增益准则的特征选择方法是:对训练数据集(或子集)D,计算其每个特征的信息增益,并比较,选出信息增益最大的特征。
信息增益的算法如下:
在这里插入图片描述

2.3信息增益比

使用信息增益比,可以校正信息增益中偏向选择取值较多的特征的问题。
特征A 对训练数据集D的信息增益比Gr(D,A)定义为其信息增益与训练数据集关于特征A的值的熵Ha(D)之比: g R ( D , A ) = g ( D , A ) H A ( D ) g_R(D,A)=\frac{g(D,A)}{H_A(D)} gR(D,A)=HA(D)g(D,A)其中, H A ( D ) = − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ l o g 2 ∣ D i ∣ ∣ D ∣ H_A(D)=-\sum_{i=1}^n\frac{|D_i|}{|D|}log_2\frac{|D_i|}{|D|} HA(D)=i=1nDDilog2DDi,n是特征A取值的个数。
Gini 指数表示集合的不确定性,或者是不纯度。基尼指数越大,集合不确定性越高,不纯度也越大。这一点和熵类似。

2.4基尼指数

Gini 指数表示集合的不确定性,或者是不纯度。基尼指数越大,集合不确定性越高,不纯度也越大。这一点和熵类似。

2.5使用sklearn.tree构建决策树

sklearn.tree——提供了决策树模型,用于解决分类和回归问题。
几个重要参数说明如下:
1.criterion
Criterion这个参数正是用来决定模型特征选择的计算方法的。sklearn提供了两种选择:输入”entropy“,使用信息熵(Entropy)输入”gini“,使用基尼系数(Gini Impurity)

2.random_state & splitter
random_state用来设置分枝中的随机模式的参数,默认None,在高维度时随机性会表现更明显。splitter也是用来控制决策树中的随机选项的,有两种输入值,输入”best",决策树在分枝时虽然随机,但是还是会优先选择更重要的特征进行分枝(重要性可以通过属性feature_importances_查看),输入“random",决策树在分枝时会更加随机,树会因为含有更多的不必要信息而更深更大,并因这些不必要信息而降低对训练集的拟合。

3.max_depth
限制树的最大深度,超过设定深度的树枝全部剪掉。这是用得最广泛的剪枝参数,在高维度低样本量时非常有效。决策树多生长一层,对样本量的需求会增加一倍,所以限制树深度能够有效地限制过拟合。
4.min_samples_leaf
min_samples_leaf 限定,一个节点在分枝后的每个子节点都必须包含至少min_samples_leaf个训练样本,否则分枝就不会发生,或者,分枝会朝着满足每个子节点都包含min_samples_leaf个样本的方向去发生。一般搭配max_depth使用,在回归树中有神奇的效果,可以让模型变得更加平滑。这个参数的数量设置得太小会引起过拟合,设置得太大就会阻止模型学习数据。

3 决策树的生成

决策树的生成算法有:ID3、C4.5、CART。三种生成算法的区别是:ID3算法是采用信息增益衡量特征选取,C4.5是采用信息增益比衡量特征的选取,CART是采用基尼指数来划分。

3.1 ID3算法

在决策树各个结点上,根据信息增益准则进行特征选择,递归的构建决策树。
具体方法是:
1)从根结点(root node)开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子节点。
2)再对子结点递归地调用以上方法,构建决策树。
3)直到所有特征的信息增益均很小或没有特征可以选择为止,最后得到一个决策树。
ID3相当于用极大似然法进行概率模型的选择。
算法步骤:
输入 :训练数据集,特征集 A A A,阈值
输出:决策树

1若 D D D中所有实例属于同一类 C k C_k Ck,则 T T T为单结点树,并将类

决策树算法是一种广泛应用于分类和回归的机器学习算法,它基于树形结构对样本进行分类或预测。决策树算法的主要思想是通过一系列的判断来对样本进行分类或预测。在决策树中,每个节点表示一个属性或特征,每个分支代表该属性或特征的一个取值,而每个叶子节点代表一个分类或预测结果。 决策树算法的训练过程主要包括以下步骤: 1. 特征选择:根据某种指标(如信息增益或基尼系数)选择最优的特征作为当前节点的分裂属性。 2. 决策树生成:根据选择的特征将数据集分成若干个子集,并递归地生成决策树。 3. 剪枝:通过剪枝操作来提高决策树的泛化性能。 决策树算法的优点包括易于理解和解释、计算复杂度较低、对缺失值不敏感等。但是,决策树算法也存在一些缺点,如容易出现过拟合、对离散数据敏感等。 下面是一个决策树算法的案例:假设我们要根据一个人的年龄、性别、教育程度和职业预测其收入水平(高于或低于50K)。首先,我们需要将这些特征进行编码,将其转换为数值型数据。然后,我们可以使用决策树算法对这些数据进行训练,并生成一个决策树模型。最后,我们可以使用该模型对新的数据进行分类或预测。例如,根据一个人的年龄、性别、教育程度和职业,我们可以使用决策树模型预测该人的收入水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值