rf = RandomForestClassifier(max_depth=5) rf.fit(X_train, y_train) 写一段提取数据并将随机森林模型可视化的代码
时间: 2024-03-11 10:51:14 浏览: 202
好的,以下是一段提取数据并将随机森林模型可视化的 Python 代码:
```python
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from sklearn.tree import export_graphviz
import pydot
# 加载数据集
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
y = iris.target
# 创建随机森林模型
rf = RandomForestClassifier(max_depth=5)
rf.fit(df, y)
# 可视化模型中的一棵决策树
tree = rf.estimators_[0]
export_graphviz(tree, out_file='tree.dot', feature_names=iris.feature_names, class_names=iris.target_names, rounded=True, precision=1)
(graph, ) = pydot.graph_from_dot_file('tree.dot')
graph.write_png('tree.png')
```
这段代码与前面的代码非常相似,唯一的区别是在创建随机森林模型时,我们指定了一个最大深度为 5 的树。这将导致每棵树的深度不会超过 5,并可能导致模型的准确率略有降低,但会使决策树更简单,更易于理解和解释。
其余部分的代码与前面的代码相同:我们选择模型中的一棵树,并使用 `export_graphviz` 函数将其导出为 `.dot` 文件,然后使用 `pydot` 库将 `.dot` 文件转换为 `.png` 图像文件。
阅读全文