决策树两两特征绘制决策区域
时间: 2023-07-20 22:36:53 浏览: 50
决策树是一种基于树形结构的分类算法,它可以对数据进行分类和预测。在决策树中,每个节点都代表一个特征,每个分支代表这个特征的一个取值,叶子节点代表一个类别。
下面是使用Python和Scikit-learn库绘制两两特征的决策区域的代码示例:
```python
from sklearn.tree import DecisionTreeClassifier
import matplotlib.pyplot as plt
import numpy as np
# 准备数据,这里以iris数据集为例
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data[:, :2] # 只取2个特征
y = iris.target
# 训练模型
clf = DecisionTreeClassifier(max_depth=3)
clf.fit(X, y)
# 绘制决策区域
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.1),
np.arange(y_min, y_max, 0.1))
Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, alpha=0.4)
plt.scatter(X[:, 0], X[:, 1], c=y, alpha=0.8)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.show()
```
在这个示例中,我们使用了Iris数据集中的前两个特征(萼片长度和萼片宽度),并训练了一个深度为3的决策树模型。然后,我们使用meshgrid()函数生成网格点,并使用predict()函数对网格点进行预测,最后使用contourf()函数将决策区域可视化。
结果如下图所示:
![决策区域示例](https://img-blog.csdnimg.cn/20220616165917316.png)