机器学习----决策树

一、决策树简介

from sklearn.tree import DecisionTreeClassifier

from sklearn.tree import plot_tree

决策树是一种树形结构,树中每个内部节点表示一个特征上的判断,每个分支代表一个判断结果的输出,每个叶子节点代表一种分类结果。

决策树的建立过程(三要素):

1.特征选择:选择较强分类能力的特征;

2.决策树的生成:根据选择的特征生成决策树;

3.决策树的剪枝:决策树也容易过拟合,采用剪枝的方法缓解过拟合。

二、信息熵

"信息熵":是信息论中的一个核心概念,它本质上是对不确定性或信息量的度量。

信息熵越大,信息的不确定性越大,信息的纯度越低,分类的效果越差;

信息熵越小,信息的不确定性越小,信息的纯度越高,分类的效果越好。

其中表示数据中类别出现的概率,表示数据的信息熵,单位是比特。

三、ID3决策树

1.特征选择

信息增益:g(D,A)=H(D)-H(D|A),信息增益 = 熵 - 条件熵

条件熵:子集1占比*子集1的熵作为子集1的结果,然后对所有计算结果求和。

2.决策树的生成

①计算每个特征的信息增益

②使用信息增益最大的特征将数据集拆分为子集

③使用该特征(信息增益最大的特征)作为决策树的一个节点

④若该节点已成功分类(节点中只有一个类的样本)或该节点达到停止生长条件,则停止生长,否则使用剩余特征对子集重复上述(1,2,3)过程。

3.不足

基于信息增益计算的方式,会偏向于选择种类多的特征作为分裂依据。

四、C4.5决策树

1.特征选择

信息增益率:信息增益率=信息增益/特征熵。

特征熵(也称惩罚系数):(特征子集1的占比*(特征子集1的占比))

2.决策树的生成

类似ID3,只是调整为基于信息增益率进行特征选择,选择增益率大的特征作为分裂依据。

五、CART决策树

Cart模型是一种决策树模型,它即可以用于分类,也可以用于回归。

Cart回归树使用平方误差最小化策略,

Cart分类生成树采用的基尼指数最小化策略。

1.Cart分类树

特征选择:基尼值:

基尼系数:

决策树的生成:类似ID3,调整为基于基尼系数进行特征选择。

2.Cart回归树

特征选择:最小化回归树预测结果的平方误差。

决策树的生成:1.选择一个特征,将该特征的值进行排序,取相邻点计算均值作为待划分点
2.根据所有划分点,将数据集分成两部分:R1、R2
3.R1 和 R2 两部分的平方损失相加作为该切分点平方损失
4.取最小的平方损失的划分点,作为当前特征的划分点
5.以此计算其他特征的最优划分点、以及该划分点对应的损失值
6.在所有的特征的划分点中,选择出最小平方损失的划分点,作为当前树的分裂点

六、三种决策树的对比

1.ID3:分支方式(指标)是信息增益

特点:①ID3只能对离散属性的数据集构成决策树

②倾向于选择取值较多的属性

2.C4.5:分支方式(指标)是信息增益率

特点:①缓解了ID3分支过程中总喜欢偏向选择值较多的属性

②可处理连续数值型属性,也增加了对缺失值的处理方法

③只适合于能够驻留于内存的数据集,大数据集无能为力

3.CART:分支方式(指标)是基尼指数

特点:①可以进行分类和回归,可以处理离散属性,也可以处理连续属性

②采用基尼指数,计算量减小

③一定是二叉树

七、剪枝

概念:决策树剪枝(Pruning)是防止决策树过拟合、提高模型泛化能力的关键技术。

问题:当决策树生长得太深、分支太多时,它会过度拟合训练数据中的噪声和细节,导致在未知数据上表现很差。

方案:剪枝通过移除对整体预测贡献不大或可能导致过拟合的部分子树或节点来解决这个问题。

什么是决策树的剪枝:把子树的节点全部删掉,并将该节点作为叶子节点。

决策树剪枝方法:1.预剪枝:在树生长过程中提前停止分裂,比如提前限制树的最大深度(优点:计算效率高,训练快;缺点:可能过早停止,错过重要模式);

2.后剪枝:先让树完全生长,再自底向上修剪子树(优点:保留更多有效结构,泛化性能通常更好;缺点:计算开销大)。

相关推荐
yzx9910133 小时前
Python开发系统项目
人工智能·python·深度学习·django
高效匠人4 小时前
人工智能-Chain of Thought Prompting(思维链提示,简称CoT)
人工智能
要努力啊啊啊5 小时前
GaLore:基于梯度低秩投影的大语言模型高效训练方法详解一
论文阅读·人工智能·语言模型·自然语言处理
先做个垃圾出来………5 小时前
《机器学习系统设计》
人工智能·机器学习
my_q5 小时前
机器学习与深度学习08-随机森林02
深度学习·随机森林·机器学习
s153355 小时前
6.RV1126-OPENCV 形态学基础膨胀及腐蚀
人工智能·opencv·计算机视觉
jndingxin5 小时前
OpenCV CUDA模块特征检测------角点检测的接口createMinEigenValCorner()
人工智能·opencv·计算机视觉
Tianyanxiao6 小时前
宇树科技更名“股份有限公司”深度解析:机器人企业IPO前奏与资本化路径
人工智能
道可云6 小时前
道可云人工智能每日资讯|北京农业人工智能与机器人研究院揭牌
人工智能·机器人·ar·deepseek
艾醒(AiXing-w)6 小时前
探索大语言模型(LLM):参数量背后的“黄金公式”与Scaling Law的启示
人工智能·语言模型·自然语言处理