通过构建决策树(采用Gini指标)对随机生成(通过np.random.randint方法)的数字进行分类,自变量X为100x4的矩阵,随机生成的数字大于10,因变量Y为大于2的100x1矩阵。树的最大深度限制为3层,训练完成之后将树可视化显示。
时间: 2024-10-10 11:12:13 浏览: 65
构建决策树的过程大致可以分为以下几个步骤:
1. **数据准备**:使用`numpy`库的`randint`函数生成100行4列的自变量矩阵`X`,以及对应的因变量(二元分类,取值为1或0,表示是否大于2)矩阵`Y`。由于条件限制,X的每个元素都是大于10的整数。
```python
import numpy as np
X = np.random.randint(11, 21, size=(100, 4)) # 随机生成大于10的整数
Y = (X[:, -1] > 2).reshape(-1, 1) # 根据最后一列判断是否大于2,转换为一维数组
```
2. **数据拆分**:将数据集划分为训练集和测试集,通常比例为80%训练和20%测试。这有助于评估模型的泛化能力。
```python
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=42)
```
3. **模型训练**:使用`scikit-learn`库的`DecisionTreeClassifier`类,设置最大深度为3,采用Gini指数作为分裂标准。
```python
from sklearn.tree import DecisionTreeClassifier
tree_clf = DecisionTreeClassifier(criterion='gini', max_depth=3)
tree_clf.fit(X_train, y_train)
```
4. **模型评估**:训练完成后,我们可以使用测试集评估模型的表现。
5. **决策树可视化**:最后,利用`export_graphviz`函数将决策树转换成可视化的图形,这里需要安装`graphviz`库。
```python
from sklearn.tree import export_graphviz
from IPython.display import Image
dot_data = export_graphviz(tree_clf, out_file=None, feature_names=X.columns[:-1], class_names=["<=2", ">2"])
graph = Source(dot_data)
Image(graph.create_png())
```
这将生成一个图像,展示出三层深度的决策树结构。
阅读全文