通过构建决策树对随机生成的数字进行分类,自变量X为的矩阵,随机生成的数字小于10,因变量Y为随机生成的数字小于2的的矩阵。树的最大深度限制为3层,训练完成之后将树可视化显示。 的代码以及运行结果
时间: 2024-12-19 15:17:42 浏览: 3
在Python中,我们可以使用scikit-learn库中的`DecisionTreeClassifier`和`plot_tree`函数来实现这个需求。首先,你需要安装必要的库,如果还没有安装可以使用以下命令:
```bash
pip install numpy pandas matplotlib scikit-learn
```
接下来是一个简单的例子展示如何构建并可视化一个最大深度为3的决策树:
```python
import numpy as np
import pandas as pd
from sklearn.tree import DecisionTreeClassifier, plot_tree
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
# 创建数据
np.random.seed(42) # 设置随机种子保证复现性
X = np.random.rand(100, 1) * 10 # 随机生成100行1列的矩阵,范围在[0, 10)
y = (np.random.rand(100) < 2).astype(int) # 随机生成0或1的数组,模拟小于2的数
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 构建决策树模型
clf = DecisionTreeClassifier(max_depth=3)
clf.fit(X_train, y_train)
# 可视化决策树
fig, ax = plt.subplots(figsize=(10, 6))
plot_tree(clf, filled=True, ax=ax)
plt.title('Depth 3 Decision Tree')
plt.show()
# 运行结果:
# 展示了一个以随机生成的数据训练的决策树,每个节点表示一个特征和条件,分支代表决策规则。图中的颜色表示预测类别(在这里可能是0或1)。由于数据是随机的,所以实际的结果会因为每次运行的随机性而不同。
```
注意:上述代码假设您已经设置了matplotlib环境,并且可以在您的环境中正常显示图形。如果你没有设置图形环境,需要额外导入`%matplotlib inline`(Jupyter notebook)或`plt.show()`(其他环境),以便显示可视化结果。同时,决策树的结构取决于随机数据的具体分布,所以无法提供固定的结果图片。
阅读全文