更新于 2026年7月11日

决策树#

决策树(Decision Tree,DT)是一种树状图模型,广泛应用于机器学习、数据挖掘与管理决策中。它通过一系列特征测试(If-Then规则)将数据层层拆分,直观地呈现决策逻辑、概率与预期收益。

示例代码#

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn import tree

def load_data():
    data = load_iris()
    X, y = data.data, data.target
    feature_names = data.feature_names
    X_train, X_test, y_train, y_test = \
        train_test_split(X, y, test_size=0.3, random_state=42)
    return X_train, X_test, y_train, y_test, feature_names

def train(X_train, X_test, y_train, y_test, feature_names):
    model = tree.DecisionTreeClassifier(criterion='gini', min_samples_leaf=5, random_state=30)
    model.fit(X_train, y_train)
    print("在测试集上的准确率为:", model.score(X_test, y_test))

if __name__ == '__main__':
    X_train, X_test, y_train, y_test, feature_names = load_data()
    print("特征为性为:", feature_names)
    train(X_train, X_test, y_train, y_test, feature_names)

运行结果#

特征为性为 ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
在测试集上的准确率为 1.0
特征重要性为 [0.00536513 0.         0.07057937 0.9240555 ]
决策树运行结果图
决策树运行结果图
阅读 --

8.1 决策树的基本思想

在本节中,我们首先介绍了决策树的核心思想,即决策树的本质就是降低信息不确定性的过程;然后总结出构建一棵决策树的关键在于找到一种合适的划分,使信息的“不确定性”能够降低得最多;最后我们介绍了如何以量化的方式来对信息进行度量。

8.2 决策树建模与可视化

在本节中,我们首先介绍了类DecisionTreeClassifier的使用方法,包括其中一些常见的重要参数及其含义;接着介绍了如何根据现有的数据集来训练一个决策树模型;最后介绍了如何利用开源的graphviz工具实现决策树的可视化。