决策树绘制散点图代码
时间: 2023-07-09 11:24:46 浏览: 108
以下是使用Python和matplotlib绘制决策树散点图的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成随机数据
np.random.seed(0)
X = np.random.randn(100, 2)
# 给数据打上标签
y = np.zeros(100)
y[X[:, 0] > 0] = 1
y[X[:, 1] > 0] = 2
y[(X[:, 0] > 0) & (X[:, 1] > 0)] = 3
# 绘制散点图
plt.scatter(X[:, 0], X[:, 1], c=y, cmap='viridis')
plt.xlabel('x1')
plt.ylabel('x2')
plt.show()
```
该代码生成了一个100个点的随机数据集,并根据x1和x2的值给每个点打上了标签。然后,使用`plt.scatter`绘制了散点图,并使用`c`参数指定了每个点的颜色,以显示标签信息。最后,使用`plt.xlabel`和`plt.ylabel`添加了坐标轴标签,并使用`plt.show`显示图形。您可以根据自己的需求修改数据集和绘图参数。
相关问题
决策树散点图代码
决策树模型可以使用 Graphviz 库绘制出来,其中散点图可以用节点颜色表示。以下是一个简单的示例代码:
```python
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier, export_graphviz
import graphviz
# 加载数据集
iris = load_iris()
X = iris.data[:, 2:] # 取花瓣长度和宽度两个特征
y = iris.target
# 训练决策树模型
tree_clf = DecisionTreeClassifier(max_depth=2)
tree_clf.fit(X, y)
# 将决策树导出为DOT格式
dot_data = export_graphviz(tree_clf, out_file=None,
feature_names=iris.feature_names[2:],
class_names=iris.target_names,
filled=True, rounded=True,
special_characters=True)
# 使用Graphviz库将DOT格式转换为PDF格式并显示
graph = graphviz.Source(dot_data)
graph.format = 'pdf'
graph.render("iris_decision_tree")
# 绘制散点图
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.get_cmap('viridis', 3))
plt.xlabel('Petal Length')
plt.ylabel('Petal Width')
plt.show()
```
这段代码使用了鸢尾花数据集,使用了决策树模型对花瓣长度和宽度两个特征进行分类,并将分类结果用颜色表示。使用 `export_graphviz` 函数将训练好的决策树模型导出为DOT格式,然后使用 Graphviz 库将DOT格式转换为 PDF 格式并显示出来。最后使用 `scatter` 函数绘制散点图,其中 `c` 参数表示颜色映射,`cmap` 参数指定使用的颜色映射类型。
sklearn决策树散点图代码
在Scikit-learn中,创建决策树的散点图(也称为决策边界)需要先训练一个决策树模型,然后利用`plot_tree`函数来可视化。这里是一个简单的例子,假设我们有鸢尾花数据集(Iris dataset)并使用`DecisionTreeClassifier`训练了一个模型:
```python
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
# 加载数据
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练决策树
clf = DecisionTreeClassifier(random_state=42)
clf.fit(X_train, y_train)
# 可视化决策树
plt.figure(figsize=(10, 6))
tree.plot_tree(clf, filled=True, class_names=iris.target_names, feature_names=iris.feature_names)
plt.title("Decison Tree for Iris Dataset")
plt.show()
```
这段代码首先加载了鸢尾花数据,接着划分了训练集和测试集,然后用训练数据训练了一个决策树模型。最后通过`plot_tree`方法绘制了决策树,并显示出来。
如果你想要看到每个样本点在二维空间(比如前两个主成分)中的位置及其所属的决策路径,可以使用`export_graphviz`将决策树导出为图形文件,然后用Graphviz软件打开,结合其他工具(如`pydot`)读取并渲染成图像。
注意:实际操作时可能需要安装额外的依赖,如`graphviz`和`pydotplus`。
阅读全文