树模型

本文详细介绍了决策树,包括其基本概念、熵、信息增益等。还阐述了 ID3、C4.5、CART 等决策树算法,以及剪枝方法。同时介绍了集成学习,如 Bagging、随机森林、Boosting 等,对比了随机森林和 GBDT 的异同,分析了各算法优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

决策树

  • 基本分类与回归方法
  • 一棵树表示整个决策过程
  • 根节点包含整个样本集,叶节点对应决策结果,内部节点对应决策过程(属性测试)
  • 根节点到叶节点对应判定测试序列
  • 熵:随机变量不确定性
  • P(X=xi)=pi,i=1,..n,H(X)=−∑i=1npilog(pi) P(X=x_i)=p_i,i=1,..n,\\H(X)=- \sum_{i=1}^np_ilog(p_i)P(X=xi)=pi,i=1,..n,H(X)=i=1npilog(pi)
  • 熵越大不确定性越大
  • 条件熵:H(Y∣X)=∑i=1nP(X=xi)H(Y∣X=xi)H(Y|X)=\sum_{i=1}^nP(X=x_i)H(Y|X=x_i)H(YX)=i=1nP(X=xi)H(YX=xi)
  • 信息增益:特征X的信息使类Y的信息不确定性减少的程度
  • g(D,A)=H(D)−H(D∣A)g(D,A)=H(D)-H(D|A)g(D,A)=H(D)H(DA)亦称互信息
  • ID3

信息增益=划分前熵-划分后熵
优点:
理论清晰
方法简单
学习能力强
缺点:
只能处理分类属性的数据,不能处理连续属性的数据
子集规模小导致划分不充分而造成统计特征不充分而停止
倾向选取取值较多之属性,优势这类属性可能不会提供太多价值

  • C4.5

信息增益比=信息增益/划分前熵
gr(D,A)=g(D,A)HA(D),n是特征A取值个数g_r(D,A)=\frac{g(D,A)}{H_A(D)},n是特征A取值个数gr(D,A)=HA(D)g(D,A),nA
处理连续特征:特征取值排序,以连续两个值中间值作为划分标准

  • CART

二叉树
回归

  • 平方误差最小化
    叶节点预测值是划分到该叶节点所有样本目标值均值
    确定最优化分:遍历所有属性,所有取值来分别尝试划分,并计算最小平方误差
    假设输入空间划分为M个单元R1,..,RMR_1,..,R_MR1,..,RM ,即M个特征,每个单元RmR_mRm上有一个固定输出值
    f(x)=∑m=1McmI(x∈Rm) f(x)=\sum_{m=1}^{M}c_{m}I(x\in R_m)f(x)=m=1McmI(xRm)
    当输入空间的划分确定时,可以用平方误差∑xi∈Rm(yi−f(xi))2\sum_{x_i \in R_m}(y_i - f(x_i))^2xiRm(yif(xi))2来表示回归树对于训练数据的预测误差,用平方误差最小的准则求解每个单元上的最优值
    选择最优切分特征 j切分点 s ,具体做法为:min⁡j,s[min⁡c1∑xi∈R1(j,s)(yi−c1)2+min⁡c2∑xi∈R2(j,s)(yi−c2)2]\min_{j,s}[\min_{c_1}\sum_{x_i\in R_1(j,s)}{(y_i-c_1)^2}+\min_{c_2}\sum_{x_i\in R_2(j,s)}{(y_i-c_2)^2}]j,smin[c1minxiR1(j,s)(yic1)2+c2minxiR2(j,s)(yic2)2]
    首先遍历特征 j ,对固定的切分特征 j 扫描切分点 s ,选择使上式达到最小值的对 (j,s)
    分类树
    使用 Gini 指数最小化准则来选择特征并进行划分;Gini 指数表示集合的不确定性,或者是不纯度。基尼指数越大,集合不确定性越高,不纯度也越大。这一点和熵类似。另一种理解基尼指数的思路是,基尼指数是为了最小化误分类的概率。
    假设有 K 个类别,样本点属于第k类的概率为p_k,则概率分布的基尼指数定义为:
    Gini(p)=∑k=1Kpk(1−pk)=1−∑k=1Kpk2Gini(p)=\sum_{k=1}^{K}p_{k}(1-p_k)=1-\sum_{k=1}^{K}p_{k}^{2}Gini(p)=k=1Kpk(1pk)=1k=1Kpk2
  • 剪枝
    防止决策树过拟合,提高泛华性能的方法,剪枝分为预剪枝与后剪枝。
    预剪枝是指在决策树的生成过程中,对每个节点在划分前先进行评估,若不能带来泛化性能的提升,停止划分,标记为叶节点。
    后剪枝:从训练集生成一颗完整的决策树,自底向上考察非叶节点,若将节点对应的子树替换为叶节点,能带来泛化性能的提升,则将该子树替换为叶节点。
    判断是否带来泛化性能的提升?
    最简单的留出法,预留一部分数据作为验证集进行性能评估。交叉验证
  • 特征选择。选取能够对训练集分类的特征。关键是准则:信息增益、信息增益比、Gini 指数;
  • 决策树的生成。利用信息增益最大、信息增益比最大、Gini 指数最小作为特征选择的准则。从根节点开始,递归的生成决策树。相当于是不断选取局部最优特征,或将训练集分割为基本能够正确分类的子集;
  • 决策树的剪枝。决策树的剪枝是为了防止树的过拟合,增强其泛化能力。包括预剪枝和后剪枝。
  • 集成学习(ensemble learning)构建并组合多个学习器来完成学习任务。获得比单一学习器显著优越的泛化性能。
  • 个体学习器通常由一个现有的学习算法从训练数据产生(比如 C4.5,BP 等),只包含同种类型的个体学习器,例如“决策树集成”中全是决策树,“神经网络集成”中全是神经网络,这样的集成是“同质”的,同质集成中的个体学习器称“基学习器”。不同质的学习器存在于统一集成中,常称为“组件学习器”或直接称为个体学习器。
  • 原则:要获得比单一学习器更好的性能,个体学习器应该好而不同。即个体学习器应该具有一定的准确性,不能差于弱学习器,并且具有多样性,即学习器之间有差异。
  • 根据个体学习器的生成方式,目前集成学习分为两大类:
    个体学习器之间存在强依赖关系、必须串行生成的序列化方法。Boosting;
    个体学习器之间不存在强依赖关系、可同时生成的并行化方法。 Bagging 和随机森林(Random Forest)。
  • Bagging

给出的做法就是对训练集进行采样,产生出若干个不同的子集,再从每个训练子集中训练一个基学习器。由于训练数据不同,我们的基学习器可望具有较大的差异。
Bagging 是并行式集成学习方法的代表,采样方法是自助采样法(bootstrap),用的是有放回的采样。初始训练集中大约有 63.2% 的数据出现在采样集中。
Bagging 在预测输出进行结合时,对于分类问题,采用简单投票法;对于回归问题,采用简单平均法。
优点:

  • 高效。Bagging 集成与直接训练基学习器的复杂度同阶;
  • Bagging 能不经修改的适用于多分类、回归任务;
    包外估计。使用剩下的样本作为验证集进行包外估计(out-of-bag estimate)
    Bagging 主要关注降低方差。(low variance)
  • 偏差(bias)预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据
  • 方差(variance):描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散
  • 随机森林:

Bagging 的一个变体。以决策树为基学习器构建 Bagging,训练过程中引入随机属性选择。
原来决策树从所有特征中,选择最优特征。Ramdom Forest 的每一颗决策树中的每一个节点,先从该节点的特征集中通过bootstrap的方法随机选择 K 个特征的子集,然后从这个特征子集中通过决策树算法选择最优特征进行划分。(注意:除了随机获取特征以外,还能随机获取样本集,使用这些随机抽取的样本得到不同的决策树)
K 控制了随机性的引入程度,是一个重要的超参数。
预测 :
分类:简单投票法;
回归:简单平均法。
构造过程:
1.从原始训练集中使用bootstrap方法随机有放回采样选出m个样本,共进行n_tree次采样,生成n_tree个训练集
2.分别训练n_tree个决策树模型
3.对于单个决策树模型,假设训练样本特征的个数为n,那么每次分裂时根据信息增益/信息增益比/基尼指数选择最好的特征进行分裂
4.每棵树都一直这样分裂下去,直到该节点的所有训练样例都属于同一类。在决策树的分裂过程中不需要剪枝
5.组成随机森林。分类问题,按多棵树分类器投票决定最终分类结果;
对于回归问题,由多棵树预测值的均值决定最终预测结果
优点:
1.每次不再考虑全部的属性,而是一个属性子集,所以相比于 Bagging 计算开销更小,训练效率更高;
2.增加属性扰动,随机森林中基学习器的性能降低,使得起始时候性能较差,但是随着基学习器的增多,rf通常会收敛于更低的泛化误差,相比于 Bagging;
3.两个随机性的引入,不易陷入过拟合,抗噪声能力qiang;
4.对数据的适应能力强,可以处理离散和连续的,无需要规范化;
5.可以得到变量的重要性, 基于oob错误率(袋外错误率out-of-bag error)和基于 Gini 系数的变化。
6.不同决策树可以由不同主机并行训练生成,效率很高
缺点:
在噪声较大的时候容易过拟合。

Boosting

个体学习器之间存在强依赖关系,必须串行序列化生成的集成学习方法。三个臭皮匠顶个诸葛亮。Boosting 意为提升,希望将每个弱学习器提升为强学习器。
工作机制如下:
1.从初始训练集中学习一个基学习器;.
2.根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续收到更多关注;
3.基于调整后的样本分布来训练下一个基学习器;
4.如此反复,直到基学习器数目达到 T,最终将这 T 个基学习器进行加权结合。
5.对训练样本分布调整,主要是通过增加误分类样本的权重,降低正确分类样本的权重。
Boosting 关注的主要是降低偏差。(low bias)

  • AdaBoost :

提高那些被前一轮弱分类器错误分类样本的权值,降低被正确分类的样本的权值。没有得到正确分类的数据受到后一轮弱分类器的关注;
采用加权多数表决。加大分类错误率低的分类器的权值,使其在表决中起较大作用,减少分类误差率大的弱分类器的权值,使其在表决中起较小作用。
弱分类器被线性组合成为一个强分类器
训练目标:
最小化指数损失函数。
三部分组成:
分类器权重更新公式;
样本分布(也就是样本权重)更新公式;
加性模型。 最小化指数损失函数。
3.3 AdaBoost 优缺点
优点:
分类精度很高
可以使用各种回归分类模型来构建弱学习器,灵活。
作为简单的二元分类器时,构造简单,可理解。
不容易发生过拟合
缺点:
对异常样本敏感,异常样本在迭代中可能会获得较高的权重,影响最终的强学习器的预测准确性。

  • GBDT

(Gradient Boosting Decision Tree)又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法。
Regression Decision Tree(DT);
Gradient Boosting(GB);
Shrinkage(算法的一个重要演进分支,目前大部分源码都是基于该版本实现);
GBDT 适用范围;
与随机森林的对比。
DT:回归树
GBDT 全都是回归树,核心是累加所有树的结果作为最终结果。只有回归树的结果累加起来才有意义,分类结果累加是没有意义。
GBDT 调整之后可以用于分类问题,但是内部还是回归树
这部分和决策树中的是一样的,无非就是特征选择。回归树用的是最小化均方误差,分类树是用的是最小化基尼指数(CART)
GB:梯度迭代 Gradient Boosting
Boosting 是集成方法。对弱分类器组合得到强分类器,串行的,弱分类器间依次训练。核心就是每一颗树学习的是之前所有树结论和的残差。
Gradient体现在:无论前面一颗树的 cost function 是什么,是均方差还是均差,只要它以误差作为衡量标准,那么残差向量都是它的全局最优方向,这就是 Gradient。

  • Shrinkage(缩减)是 GBDT 的重要演进分支
    核心思想:每走一小步逼近结果的效果,比每次迈一大步很快逼近结果的方式更容易防止过拟合。
    不信任每次学习到的残差,认为每棵树只学到真理的一小部分,累加的时候只累加一小部分,通过多学习几棵树来弥补不足。
    仍以残差作为学习目标,对残差学出来的结果只累加一小部分(step* 残差)逐步逼近目标,step 一般都比较小 0.01-0.001, 各树的残差是渐变而不是陡变的。
    本质上,Shrinkage 为每一颗树设置了一个 weight,累加时要乘以这个 weight,但和 Gradient 没有关系。
    这个 weight 就是 step。跟 AdaBoost 一样,Shrinkage 能减少过拟合也是经验证明的,目前还没有理论证明。
  • GBDT 适用范围
    回归问题(线性和非线性);
    二分类问题(设定阈值,大于为正,否则为负)和多分类问题
  • GBDT 和随机森林区别(重点)
  • GBDT 和随机森林的相同点:
    多棵树组成;
    最终结果由多棵树共同决定。
  • GBDT 和随机森林的不同点:
    rf可以是分类树、回归树;
    GBDT 只能是回归树;
    组成rf的树可并行生成(Bagging);GBDT 只能串行生成(Boosting);
    这两种模型都用到了Bootstrap的思想。
    对于最终的输出结果,随机森林使用多数投票或者简单平均
    GBDT 将所有结果累加,或加权累加
    随机森林对异常值不敏感,GBDT 对异常值非常敏感;
    随机森林训练集权值一样,GBDT 是基于权值的弱分类器的集成
    随机森林通过减小模型的方差提高性能,GBDT 通过减少模型偏差提高性能。
  • GBDT 相比决策树优点
    泛化性能更好
    每一步的残差计算增大分错样本权重,分对样本都趋向于0。更专注分错的样本
  • Gradient 体现在
    残差是全局最优的绝对方向,类似于求梯度。
  1. re-sample
    GBDT 在使用残差的同时引入 Bootstrap re-sampling,GBDT 多数实现版本中引入了这个选项,是否一定使用有不同的看法。
    原因在于 re-sample 导致的随机性,使得模型不可复现,对于评估提出一定的挑战,比如很难确定性能的提升是由于 feature 的原因还是 sample 的随机因素
电动汽车数据集:2025年3K+记录 真实电动汽车数据:特斯拉、宝马、日产车型,含2025年电池规格和销售数据 关于数据集 电动汽车数据集 这个合成数据集包含许多品牌和年份的电动汽车和插电式车型的记录,捕捉技术规格、性能、定价、制造来源、销售和安全相关属性。每一行代表由vehicle_ID标识的唯一车辆列表。 关键特性 覆盖范围:全球制造商和车型组合,包括纯电动汽车和插电式混合动力汽车。 范围:电池化学成分、容量、续航里程、充电标准和速度、价格、产地、自主水平、排放、安全等级、销售和保修。 时间跨度:模型跨度多年(包括传统和即将推出的)。 数据质量说明: 某些行可能缺少某些字段(空白)。 几个分类字段包含不同的、特定于供应商的值(例如,Charging_Type、Battery_Type)。 各列中的单位混合在一起;注意kWh、km、hr、USD、g/km和额定值。 列 列类型描述示例 Vehicle_ID整数每个车辆记录的唯一标识符。1 制造商分类汽车品牌或OEM。特斯拉 型号类别特定型号名称/变体。型号Y 与记录关联的年份整数模型。2024 电池_类型分类使用的电池化学/技术。磷酸铁锂 Battery_Capacity_kWh浮充电池标称容量,单位为千瓦时。75.0 Range_km整数表示充满电后的行驶里程(公里)。505 充电类型主要充电接口或功能。CCS、NACS、CHAdeMO、DCFC、V2G、V2H、V2L Charge_Time_hr浮动充电的大致时间(小时),上下文因充电方法而异。7.5 价格_USD浮动参考车辆价格(美元).85000.00 颜色类别主要外观颜色或饰面。午夜黑 制造国_制造类别车辆制造/组装的国家。美国 Autonomous_Level浮点自动化能力级别(例如0-5),可能包括子级别的小
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值