(四)决策树与随机森林

  1. 技术原理

(1)决策树

  • 核心思想:通过递归划分特征空间,构建一棵树形结构,每个内部节点表示一个特征测试,每个分支代表测试结果,叶节点表示类别或回归值。

  • 关键步骤

    • 特征选择:选择最优划分特征(基于信息增益、增益率或基尼指数)。

    • 节点分裂:根据特征阈值将数据划分为子集。

    • 终止条件:当节点纯度达到阈值、样本数过少或达到最大深度时停止分裂。

  • 数学基础

    • 信息增益(ID3)Gain(D, a) = Ent(D) - ∑(∣Dᵛ∣/∣D∣) * Ent(Dᵛ)

    • 基尼指数(CART)Gini(D) = 1 - ∑(pₖ²),衡量数据不纯度。

(2)随机森林

  • 核心思想:通过集成多棵决策树,利用Bagging和随机特征选择提升泛化能力。

  • 关键步骤

    • Bootstrap采样:从训练集中有放回抽取多个子集(每棵树训练数据不同)。

    • 随机特征选择:每棵树分裂时仅考虑随机子集的特征(如√p个特征)。

    • 投票/平均:分类任务采用多数投票,回归任务采用均值。

  • 数学基础

    • Bagging:降低方差,公式:Var(1/T ∑Xᵢ) = Var(Xᵢ)/T(T为树数量)。

    • 随机性来源:数据扰动(Bootstrap) + 特征扰动(随机子空间)。


  1. 核心参数

(1)决策树

参数

作用

典型值/选择

criterion

分裂准则(基尼指数或信息熵)

"gini"(CART)或 "entropy"(ID3)

max_depth

树的最大深度,控制模型复杂度

3-10(过深易过拟合)

min_samples_split

节点分裂所需最小样本数

2-20(防止过拟合)

min_samples_leaf

叶节点最少样本数

1-10(平滑预测)

max_features

分裂时考虑的最大特征数(None=全部)

"sqrt"(分类)或 "log2"(回归)

(2)随机森林

参数

作用

典型值/选择

n_estimators

树的数量

100-500(越多越好,但计算成本高)

max_depth

单棵树的最大深度

5-30(通常比单棵树浅)

min_samples_split

同决策树

2月20日

bootstrap

是否使用Bootstrap采样

True(默认)

max_features

每棵树分裂时的随机特征数

"sqrt"(分类)或 "log2"(回归)

oob_score

是否使用袋外样本(OOB)评估模型

True(无需额外验证集)

  1. 优劣势对比

特点:都无需特征缩放、可处理非线性关系

算法

优势

劣势

决策树

高度可解释:规则可视化,适合业务解释

❌ 高方差:易过拟合,需剪枝

❌ 不稳定:数据微小变化导致树结构巨变

✅ 高效训练:时间复杂度O(n log n)

❌ 局部最优:贪婪分裂可能忽略全局最优

随机森林

抗过拟合,鲁棒性,对噪声和缺失值不敏感

计算成本高:树数量多时训练慢

可处理大规模数据

可解释性差:难以可视化单棵树

✅ 自动特征重要性:评估特征贡献度

❌ 内存占用大:需存储多棵树

  1. 适用场景

(1)决策树适用场景

  • 需要透明模型:如医疗诊断、金融风控等需解释规则的领域。

  • 小规模数据:快速原型开发或特征重要性初步分析。

  • 混合数据类型:同时包含数值和类别特征(无需独热编码)。

示例

  • 银行用决策树生成客户贷款审批规则(如“收入>50K且信用分>700 → 批准”)。

  • 医疗领域根据症状(发烧、咳嗽)和检测指标(体温、血氧)判断疾病。

(2)随机森林适用场景

  • 高维大数据:如电商用户行为预测、图像分类。

  • 高精度需求:竞赛或工业场景中追求稳定高准确率。

  • 特征选择:通过feature_importances_筛选关键特征。

示例

  • 预测房价(回归):集成多棵树平滑噪声,避免单棵树过拟合。

  • 信用卡欺诈检测(分类):处理不平衡数据,通过OOB评估泛化性。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐