🌳决策树算法:
1.算法介绍
决策树(Decision),又称判定树,是数据挖掘技术中的一种重要的分类与回归算法,他是一种以树结构形式来表达的预测分析模型
CLS:
ID3:信息增益
C4.5:信息增益率(解决ID3中出现的问题)
CART:使用GINI系数来当做衡量标准
RF:随机森林算法(Random Forest)
决策树:节点,分支
节点:根节点,叶子结点,内部节点
分支:连接各个节点
🏥医疗诊断:决策树算法可以用于医疗诊断,通过患者的症状、体征等信息来预测患病类型,例如预测肺癌、心脏病等。
💎金融风控:决策树算法可以用于金融风控,通过分析客户的信用记录、财务状况等信息,来预测客户是否有违约风险,例如信用卡欺诈检测、个人贷款评估等。
☼能源管理:决策树算法可以用于能源管理,通过分析能源消耗的历史数据,来预测未来消耗量和节能方案,例如电力负荷预测、能源管理系统等。
🏪市场营销:决策树算法可以用于市场营销,通过分析客户的购买记录、兴趣爱好等信息,来预测客户的购买行为,例如推荐系统、用户画像等。
👑生产质量控制:决策树算法可以用于生产质量控制,通过分析生产过程中的参数、数据等信息,来预测产品质量和生产异常,例如制造过程监控、质量控制系统等。
2.决策树的构建
在决策树中,顾名思义,我们就是通过从根节点不断决策来对样本进行特征分类得出结果的,而在众多的特征中,第一选择用哪个特征来做决策,第二用什么特征继续对结果进行决策…,我们知道,分类效果最好的肯定是首选,即我们希望决策树内部节点所包含的样本能够尽可能的属于同一类别,然后分类效果第二好的作为第二特征…,然而,如何确定决策特征的分类效果,这时我们引入信息熵作为分类效果的衡量标准:
信息熵:表示随机变量不确定性的度量
通俗地讲,就是物体内部的混乱程度,信息熵公式:
H
(
x
)
=
−
∑
P
(
x
i
)
l
o
g
(
2
,
P
(
x
i
)
)
(
i
=
1
,
2
,
.
.
n
)
H(x)=-∑P(xi)log(2,P(xi)) (i=1,2,..n)
H(x)=−∑P(xi)log(2,P(xi))(i=1,2,..n)
这里举出二分类问题抛硬币问题,我们知道,抛出硬币后正面与反面的概率P都为0.5,此时信息熵的计算如下:
H
(
x
)
=
−
(
0.5
∗
l
o
g
0.5
+
0.5
∗
l
o
g
0.5
)
=
1
H(x)=-(0.5*log0.5+0.5*log0.5)=1
H(x)=−(0.5∗log0.5+0.5∗log0.5)=1
而当我们提出假设抛正面或抛反面的概率P为1,即必为正面或反面时,信息熵的计算如下:
H
(
x
)
=
−
(
1
∗
l
o
g
1
+
0
∗
l
o
g
0
)
=
0
H(x)=-(1*log1+0*log0)=0
H(x)=−(1∗log1+0∗log0)=0
由此,我们知道,节点内混乱程度越高,信息熵越大,如上方二分类问题当P=0.5时,混乱程度最大,信息熵也是最大的,当P=1时,混乱程度最低,即节点内的纯度最高,信息熵也就最低。
在了解了信息熵后,我们再引入==信息增益(Gain)==的概念:
信息增益:以信息熵为基础,计算当前特征划分对信息熵所造成的变化
G ( D , A ) = H ( D ) − H ( D ∣ A ) G(D,A)=H(D)−H(D∣A) G(D,A)=H(D)−H(D∣A)
H(D)为集合D的信息熵,H(D|A)为在特征A划分后的信息熵,我们得出,当特征划分对信息熵所造成的变化越大,信息增益也就越大,而信息增益越大,通过特征A划分后的节点纯度也就越大
ID3算法:
ID3:通过不断递归比较信息增益以选择特征划分来训练树,构建决策树
缺点:
在ID3中,由于我们总是会选择信息增益大的特征,而如果特征内取值越多,其对样本划分后的纯度越高,信息增益也就越大,如假设集合A特征划分后每个个体都为一个节点,信息增益最大,所以ID3会偏向取值多的特征,此时引入C4.5算法:
C4.5算法:
C4.5:继承了ID3的所有优点,并对ID3进行了改进和补充,采用信息增益率选择特征划分
CART算法:
CART:使用基尼指数来选择特征划分
基尼指数(Gini):另一种表示样本集纯度的指标,Gini的值越小,样本集的纯度越高
G i n i ( D ) = 1 − ∑ p ( x i ) 2 Gini(D)=1−∑p(xi)^2 Gini(D)=1−∑p(xi)2
随机森林:
以决策树为估计器的Bagging算法,将许多个决策树结合在一起,每次数据集都是随机有放回的选出,同时随机选出部分特征作为输入
3.决策树剪枝:
为什么要剪枝?
当决策树的深度特别深以至于个子节点中的对象只有一个或很少,导致决策树的模型过于复杂,容易造成过拟合问题,而剪枝是决策树防止过拟合的手段,
过拟合:根本原因是特征维度过多,模型假设过于复杂,参数过多,训练数据过少,噪声过多,导致拟合的函数完美的预测训练集,但对新数据的测试集预测结果差。 过度的拟合了训练数据,而没有考虑到泛化能力。
剪枝策略:
预剪枝:边建立决策树边进行剪枝
用深度,叶子结点个数,叶子结点样本数,信息增益量等决定是否生成子节点
后剪枝:建立完决策树后进行剪枝
通过一定的衡量标准(精度)自底向上删除树节点的分支