决策树在鸢尾花数据集上的应用

决策树是一种常用的机器学习算法,它通过学习数据集中的模式来预测未知数据的分类。在本文中,将使用Python的scikit-learn库来训练一个决策树模型,该模型将应用于著名的鸢尾花数据集。鸢尾花数据集包含了150个样本,每个样本有四个特征,分别对应鸢尾花的萼片长度、萼片宽度、花瓣长度和花瓣宽度。目标是使用决策树来区分这三种不同类型的鸢尾花。

首先,需要加载鸢尾花数据集。scikit-learn库已经为提供了这个数据集的副本,可以直接导入使用。接下来,将展示决策树是如何在所有特征对上进行训练的。这意味着,将分别考虑每对特征,然后训练一个决策树模型来学习这些特征之间的决策边界。这些决策边界是由一系列简单的阈值规则组合而成的,这些规则是从训练样本中推断出来的。

from sklearn.datasets import load_iris iris = load_iris()

在训练决策树模型时,使用了不同的参数来控制模型的复杂度。例如,设置了类别数为3,这是因为鸢尾花数据集中有三种不同类型的鸢尾花。还设置了绘图颜色和绘图步长,以便在绘制决策边界时能够更清晰地展示结果。

import matplotlib.pyplot as plt import numpy as np from sklearn.inspection import DecisionBoundaryDisplay from sklearn.tree import DecisionTreeClassifier n_classes = 3 plot_colors = "ryb" plot_step = 0.02 for pairidx, pair in enumerate([[0, 1], [0, 2], [0, 3], [1, 2], [1, 3], [2, 3]]): X = iris.data[:, pair] y = iris.target clf = DecisionTreeClassifier().fit(X, y) ax = plt.subplot(2, 3, pairidx + 1) plt.tight_layout(h_pad=0.5, w_pad=0.5, pad=2.5) DecisionBoundaryDisplay.from_estimator(clf, X, cmap=plt.cm.RdYlBu, response_method="predict", ax=ax, xlabel=iris.feature_names[pair[0]], ylabel=iris.feature_names[pair[1]])

在绘制决策边界时,使用了不同的颜色来表示不同的类别。这样,就可以清楚地看到决策树是如何在特征空间中划分不同类别的。此外,还绘制了训练点,以便可以直观地看到模型是如何从训练数据中学习决策边界的。

最后,还展示了一个在所有特征上训练的单个决策树的结构。这个决策树模型考虑了鸢尾花数据集中的所有四个特征,从而能够更全面地学习数据集中的模式。通过绘制这个决策树的结构,可以更深入地理解模型是如何做出预测的。

from sklearn.tree import plot_tree plt.figure() clf = DecisionTreeClassifier().fit(iris.data, iris.target) plot_tree(clf, filled=True) plt.title("在所有鸢尾花特征上训练的决策树") plt.show()

总的来说,本文展示了如何使用决策树对鸢尾花数据集的特征对进行训练,并绘制了决策边界和决策树的结构。这些结果可以帮助更好地理解决策树模型是如何工作的,以及它是如何从数据中学习模式的。

相关示例

  • 鸢尾花数据集上绘制多类SGD
  • 在鸢尾花数据集上绘制集成树的决策面
  • 绘制VotingClassifier的决策边界

鸢尾花数据集

鸢尾花数据集是一个著名的多类分类数据集,它包含了150个样本,每个样本有四个特征。这个数据集通常被用来测试分类算法的性能。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485