机器学习进阶文档深度页
决策树
递归枚举特征与阈值,选择不纯度下降最大的划分,叶节点输出多数类别或均值。
学习前需要掌握
Gini内容待补充分类内容待补充
背景与问题
树能表达非线性和交互且无需标准化,但贪心、对数据变化敏感并易生成深层噪声规则。
概念定义
树由判断节点和叶子组成;每个判断把样本分为左右子集并继续递归。
直观理解
连续提出最能把类别分开的“是否小于阈值”问题。
核心原理
候选阈值通常来自相邻不同值中点,选择 Gain 最大者。max_depth、min_samples_leaf 和 ccp_alpha 控制复杂度。
数学表达
核心表达
候选阈值通常来自相邻不同值中点,选择 Gain 最大者。max_depth、min_samples_leaf 和 ccp_alpha 控制复杂度。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1排序候选特征值
- 2生成阈值
- 3计算左右不纯度
- 4选最大增益
代码对应位置
示例 1决策树 实现:对应文档中的训练与预测逻辑。
计算与实现步骤
- 1
排序候选特征值
- 2
生成阈值
- 3
计算左右不纯度
- 4
选最大增益
- 5
递归
- 6
按停止条件生成叶
代码实现
示例 1
决策树 实现
决策树 实现
scikit-learn
example_01.py用途:对应文档中的训练与预测逻辑。
from sklearn.tree import DecisionTreeClassifier
model=DecisionTreeClassifier(max_depth=3,min_samples_leaf=5,random_state=42)
model.fit(X_train,y_train)代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
对应文档中的训练与预测逻辑。
X_train- 训练特征,只允许它参与预处理器和模型的 fit。
y_train- 与 X_train 对齐的训练目标。
model- 组合预处理和估计器的模型对象。
Step 1 · 1–3 行
导入当前步骤需要的数值计算、预处理、模型或评价工具。依赖集中写在代码开头,便于复现。
from sklearn.tree import DecisionTreeClassifier
model=DecisionTreeClassifier(max_depth=3,min_samples_leaf=5,random_state=42)
model.fit(X_train,y_train)预期输出或运行结果
得到受深度和叶节点样本限制的分类树。
常见错误 · 4 条
- 无限深树
- 特征重要性当因果
- 只凭外观选深度
- 确认样本轴、特征轴以及 X 与 y 的第一维完全对应。
实际应用
- 规则型表格任务
- 可视化决策
常见错误
无限深树
特征重要性当因果
只凭外观选深度
文档来源
05|决策树与集成学习原始文档
学习资料/learning_tech/05_tree_and_ensemble.md- §1 决策树的模型结构
- §2 决策树如何学习
- §3 重要超参数
- §4 优缺点