隐藏页面特效

决策树算法对鸢尾花数据集进行分类

①导入相关扩展包

from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import export_graphviz

②获取数据集

iris = load_iris()

③划分数据集

x_train,x_test,y_train,y_test=train_test_split(iris.data,iris.target,random_state=20)

④决策树预估器(estimator)

estimator=DecisionTreeClassifier(criterion="entropy") #criterion默认为'gini'系数,也可选择信息增益熵'entropy' estimator.fit(x_train,y_train) #调用fit()方法进行训练,()内为训练集的特征值与目标值

⑤模型评估

方法一:直接对比测试集的真实值和预测值

y_predict=estimator.predict(x_test) #传入测试集特征值,预测所给测试集的目标值 print("y_predict:\n",y_predict) print("直接对比真实值和预测值:\n",y_test==y_predict)

方法二:计算准确率

score=estimator.score(x_test,y_test) #传入测试集的特征值和目标值

⑥决策树可视化(将结果写入tree.dot文件中,然后将tree.dot文件中的内容粘贴在webgraphviz.com中进行可视化展示

 

export_graphviz(estimator, out_file="tree.dot", feature_names=iris.feature_names)

 

主要代码:

 

def decision_demo(): # 1.获取数据集 iris = load_iris() # 2.划分数据集 x_train,x_test,y_train,y_test=train_test_split(iris.data,iris.target,random_state=20) # 3.决策树预估器(estimator) estimator=DecisionTreeClassifier(criterion="entropy") #criterion默认为'gini'系数,也可选择信息增益熵'entropy' estimator.fit(x_train,y_train) #调用fit()方法进行训练,()内为训练集的特征值与目标值 # 4.模型评估 #方法一:直接对比真实值和预测值 y_predict=estimator.predict(x_test) #传入测试集特征值,预测所给测试集的目标值 print("y_predict:\n",y_predict) print("直接对比真实值和预测值:\n",y_test==y_predict) #方法二:计算准确率 score=estimator.score(x_test,y_test) #传入测试集的特征值和目标值 print("准确率为:\n",score) #决策树可视化 export_graphviz(estimator,out_file="tree.dot",feature_names=iris.feature_names) return None

 

代码运行结果:

 

 可视化展示结果:

 

 

 

 注:可视化展示中,feature_names=iris.feature_names缺省会出现特征值名称缺失现象,如下图所示:

 


__EOF__

本文作者CherriesOvO
本文链接https://www.cnblogs.com/zyj3955/p/15430369.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   CherriesOvO  阅读(1877)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2020-10-19 Tomcat的相关使用
点击右上角即可分享
微信分享提示