首页 > 其他分享 >实验一:决策树实验

实验一:决策树实验

时间:2022-10-30 22:13:37浏览次数:87  
标签:剪枝 结点 graphviz 算法 实验 决策树

|博客班级|https://edu.cnblogs.com/campus/czu/classof2020BigDataClass3-MachineLearning|
|作业要求|https://edu.cnblogs.com/campus/czu/classof2020BigDataClass3-MachineLearning/homework/12858|
|学号|201613316|

【实验目的】

1.理解决策树算法原理,掌握决策树算法框架;
2.理解决策树学习算法的特征选择、树的生成和树的剪枝;
3.能根据不同的数据类型,选择不同的决策树算法;
4.针对特定应用场景及数据,能应用决策树算法解决实际问题。

【实验内容】

1.设计算法实现熵、经验条件熵、信息增益等方法。
2.针对给定的房贷数据集(数据集表格见附录1)实现ID3算法。
3.熟悉sklearn库中的决策树算法;
4.针对iris数据集,应用sklearn的决策树算法进行类别预测。

【实验报告要求】

1.对照实验内容,撰写实验过程、算法及测试结果;
2.代码规范化:命名规则、注释;
3.查阅文献,讨论ID3、C4.5算法的应用场景;
4.查询文献,分析决策树剪枝策略。

实验内容及结果

实验代码及截图

一、实现熵、经验条件熵、信息增益等方法。

1.导入包

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

【实验小结】

1、讨论ID3、C4.5算法的应用场景:

ID3算法应用场景:适于处理大规模的学习问题,是数据挖掘和知识发现领域中的一个很好的范例。C4.5算法在机器学习、知识发现、金融分析、遥感影像分类、生产制造、分子生物学和数据挖掘等领域得到广泛应用。

2、分析决策树剪枝策略

剪枝的目的在于:缓解决策树的"过拟合",降低模型复杂度,提高模型整体的学习效率
(决策树生成学习局部的模型,而决策树剪枝学习整体的模型)
基本策略:
预剪枝:是在决策树生成过程中,对每一个结点在划分前进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点。
后剪枝:先从训练集生成一棵完整的决策树,然后自底向上地对非叶子结点进行考察,若将该结点对应地子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。

 

【实验中遇到的问题及解决办法】

from sklearn.tree import DecisionTreeClassifier   from sklearn.tree import export_graphviz  import graphviz出现No module named 'graphviz'报错

解决方案:conda install graphviz  pip install graphviz

graphviz.Source(dot_graph)出现failed to execute WindowsPath('dot'), make sure the Graphviz executables are on your systems' PATH报错

解决方案:

重新下载graphviz,然后修改环境变量,最后关闭Jupyter,cmd打开命令提示符,执行dot -version查看是否配置成功,如果成功,重启Jupyter。

 

 

标签:剪枝,结点,graphviz,算法,实验,决策树
From: https://www.cnblogs.com/luowenhui220411/p/16842405.html

相关文章

  • 实验7:基于REST API的SDN北向应用实践
    实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。实验要求(一)基本要求编写Python程序,调用OpenDayl......
  • 第五章 web服务器 实验一
    实验要求1.要求搭建web服务器,能够访问到网页内容为“小胖,你咋这么胖呢!”2.要求搭建web服务器,创建基于域名的虚拟主机,能够使用www.xiaopang.com和www.dapang.com访问各自......
  • 实验6:开源控制器实践——RYU
    (一)基本要求1.搭建SDN拓扑,协议使用OpenFlow1.0,并连接Ryu控制器,通过Ryu的图形界面查看网络拓扑。(通过命令实现搭建拓扑)命令:sudomn--topo=single,3--mac--controller......
  • 实验6:开源控制器实践——RYU
    1.搭建下图所示SDN拓扑,协议使用OpenFlow1.0,并连接Ryu控制器,通过Ryu的图形界面查看网络拓扑。sudomn--topo=single,3--mac--controller=remote,ip=127.0.0.1,port=66......
  • 实验6:开源控制器实践——RYU
    实验6:开源控制器实践——RYU一、实验目的能够独立部署RYU控制器;能够理解RYU控制器实现软件定义的集线器原理;能够理解RYU控制器实现软件定义的交换机原理。二、实验......
  • 实验一:决策树算法实验
    实验一:决策树算法实验【实验目的】理解决策树算法原理,掌握决策树算法框架;理解决策树学习算法的特征选择、树的生成和树的剪枝;能根据不同的数据类型,选择不同的决策树算......
  • 实验7:基于REST API的SDN北向应用实践
    一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验环境下载虚拟机软件OracleVisualBox或......
  • 决策树算法实验
    一、【实验目的】理解决策树算法原理,掌握决策树算法框架;理解决策树学习算法的特征选择、树的生成和树的剪枝;能根据不同的数据类型,选择不同的决策树算法;针对特定应用场景......
  • 实验6:开源控制器实践——RYU
    实验6:开源控制器实践——RYU一、实验目的能够独立部署RYU控制器;能够理解RYU控制器实现软件定义的集线器原理;能够理解RYU控制器实现软件定义的交换机原理。二、实验环......
  • 实验一:决策树算法实验
    一、【实验目的】理解决策树算法原理,掌握决策树算法框架;理解决策树学习算法的特征选择、树的生成和树的剪枝;能根据不同的数据类型,选择不同的决策树算法;针对特定应用场......