🎯 学习目标

  • 理解决策树的构建原理
  • 掌握信息增益和基尼系数
  • 学会使用决策树进行分类
  • 了解剪枝策略
决策树
图:决策树通过一系列规则做出决策

🌳 决策树结构

🔲

根节点

第一个分裂条件

📦

内部节点

中间决策点

🎯

叶节点

最终分类结果

💻 sklearn实现

from sklearn.tree import DecisionTreeClassifier, plot_tree import matplotlib.pyplot as plt # 创建决策树 model = DecisionTreeClassifier( max_depth=5, # 最大深度 min_samples_split=10, # 分裂最小样本数 min_samples_leaf=5, # 叶节点最小样本数 criterion='gini', # 分裂标准: 'gini' 或 'entropy' random_state=42 ) # 训练 model.fit(X_train, y_train) # 预测 y_pred = model.predict(X_test) # 可视化决策树 plt.figure(figsize=(20, 10)) plot_tree(model, filled=True, feature_names=feature_names) plt.show() # 特征重要性 print(model.feature_importances_)

📊 分裂标准

标准 公式 特点
基尼系数 Gini = 1 - Σpᵢ² 计算快,sklearn默认
信息增益 IG = H(父) - ΣwᵢH(子) 更直观,但计算慢
⚠️
决策树容易过拟合

务必设置max_depth、min_samples_split等参数限制树的复杂度。

📝 本节小结

  • • 决策树通过递归分裂构建
  • • 可解释性强,易于理解
  • • 容易过拟合,需要剪枝
  • • 是随机森林和GBDT的基础