什么是决策树?如何构建一个决策树?它有哪些优缺点?代码举例讲解

决策树是一种监督学习方法,用于分类和回归任务。它通过树结构来构建分类规则或回归模型。

构建决策树的主要步骤是:

  1. 选择最优特征:计算各个特征的信息增益或者基尼指数,选择最优特征作为根节点。
  2. 构建子树:根据最优特征的不同取值,划分出多个分支,每个分支构建子树。
  3. 终止条件:如果所有样本属于同一类或满足其他终止标准,则构建终止。

决策树的主要优点是:

  • 易于理解和解释。
  • 无需数据集归一化。
  • 特征之间无相关性假设。
  • 可以处理各种类型数据。

主要缺点是:

  • 容易过拟合。
  • 对于高维稀疏数据不具有很好的效果。
  • 分类结果依赖训练集,对小变化敏感。

代码示例:

python
from sklearn.tree import DecisionTreeClassifier

model = DecisionTreeClassifier(criterion='gini')
model.fit(x_train, y_train)
pred = model.predict(x_test)

from sklearn.tree import export_graphviz 
export_graphviz(model, out_file='tree.dot', feature_names=feature_names)
# 使用graphviz命令行将tree.dot转换为pdf