机器学习(8):决策树与随机森林
(四)决策树与随机森林
-
技术原理
(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)决策树
|
参数 |
作用 |
典型值/选择 |
|---|---|---|
|
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(无需额外验证集) |
-
优劣势对比
特点:都无需特征缩放、可处理非线性关系
|
算法 |
优势 |
劣势 |
|---|---|---|
|
决策树 |
✅ 高度可解释:规则可视化,适合业务解释 |
❌ 高方差:易过拟合,需剪枝 |
|
❌ 不稳定:数据微小变化导致树结构巨变 | ||
|
✅ 高效训练:时间复杂度O(n log n) |
❌ 局部最优:贪婪分裂可能忽略全局最优 | |
|
随机森林 |
✅ 抗过拟合,鲁棒性强,对噪声和缺失值不敏感 |
❌ 计算成本高:树数量多时训练慢 |
|
✅ 可处理大规模数据 |
❌ 可解释性差:难以可视化单棵树 | |
|
✅ 自动特征重要性:评估特征贡献度 |
❌ 内存占用大:需存储多棵树 |
-
适用场景
(1)决策树适用场景
-
需要透明模型:如医疗诊断、金融风控等需解释规则的领域。
-
小规模数据:快速原型开发或特征重要性初步分析。
-
混合数据类型:同时包含数值和类别特征(无需独热编码)。
示例:
-
银行用决策树生成客户贷款审批规则(如“收入>50K且信用分>700 → 批准”)。
-
医疗领域根据症状(发烧、咳嗽)和检测指标(体温、血氧)判断疾病。
(2)随机森林适用场景
-
高维大数据:如电商用户行为预测、图像分类。
-
高精度需求:竞赛或工业场景中追求稳定高准确率。
-
特征选择:通过
feature_importances_筛选关键特征。
示例:
-
预测房价(回归):集成多棵树平滑噪声,避免单棵树过拟合。
-
信用卡欺诈检测(分类):处理不平衡数据,通过OOB评估泛化性。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)