机器学习----决策树

一、决策树简介

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

相关推荐
回眸&啤酒鸭1 天前
【回眸】Minicart 电商购物车核心功能落地指南
人工智能
一隅论数智1 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
AI的探索之旅1 天前
97 个 OpenCV 实例(三十):双目立体,从标定到点云
人工智能·opencv·计算机视觉
AlbertZein1 天前
Step-5-Preview 上手实测:3D 游戏、金融分析、网页设计一次跑完
人工智能·aigc
LaughingZhu1 天前
Product Hunt 每日热榜 | 2026-09-19
人工智能·深度学习·神经网络·搜索引擎·百度
美狐美颜SDK开放平台1 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
wukangjupingbb1 天前
智能网联汽车安全能力框架
人工智能
龙亘川1 天前
明月照湾区,智启新赛道:从顶流文旅IP盛会看智慧文旅升级路径
人工智能·智慧城市·开源软件·数据可视化
飞猫的边缘AI1 天前
边缘AI应用:家用AI摄像头怎么做数据训练?
人工智能·边缘计算·ai算法·边缘ai