1.Python实现ID3算法,鸢尾花数据集 并可视化
时间: 2024-03-24 18:37:53 浏览: 78
鸢尾花用ID3算法
好的,我可以为您解答这个问题。下面是一个简单的示例代码,演示如何使用ID3算法来训练和测试一个决策树模型,并将其可视化展示:
```python
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier, export_graphviz
from sklearn.model_selection import train_test_split
import graphviz
# 加载鸢尾花数据集
data = load_iris()
X = data.data
y = data.target
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
# 创建决策树分类器
clf = DecisionTreeClassifier(criterion='entropy')
# 训练模型
clf.fit(X_train, y_train)
# 测试模型
score = clf.score(X_test, y_test)
# 打印准确率
print("准确率:", score)
# 可视化决策树
dot_data = export_graphviz(clf, out_file=None, feature_names=data.feature_names, class_names=data.target_names, filled=True, rounded=True, special_characters=True)
graph = graphviz.Source(dot_data)
graph.render("iris")
```
在这个示例代码中,我们使用了sklearn库中的DecisionTreeClassifier类来创建一个决策树分类器,并将其应用于鸢尾花数据集上。在创建分类器的过程中,我们使用了criterion='entropy'参数来指定使用ID3算法。训练和测试模型的过程与之前的示例代码相同。
最后,我们使用export_graphviz()函数将决策树模型可视化,并使用graphviz库中的Source类来显示可视化结果。我们将生成的决策树图保存为iris.pdf文件。您可以通过调整dot_data中的参数来自定义决策树图的样式。
阅读全文