实验一:决策树算法实验

【实验目的】

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

【实验内容】

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

【实验报告要求】

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

【附录1】

  1.   年龄 有工作 有自己的房子 信贷情况 类别
    0 青年 一般
    1 青年
    2 青年
    3 青年 一般
    4 青年 一般
    5 中年 一般
    6 中年
    7 中年
    8 中年 非常好
    9 中年 非常好
    10 老年 非常好
    11 老年
    12 老年
    13 老年 非常好
    14 老年 一般

实验过程及结果

一.设计算法实现熵、经验条件熵、信息增益等方法

1.创建数据集

 

 

 2.导入包

 

 

3.生成训练数据集

 

 

 4.设计算法实现熵

 

 

 5.设计算法实现经验条件熵

 

 

 6.设计算法实现信息增益

 

 

二.针对给定的房贷数据集实现ID3算法

1.

2.

 

 

 

 

三.针对iris数据集,应用sklearn的决策树算法进行类别预测

1.

 

 

 

 2.

 

3.

 

 4.

 

 

 

5.

 

 

 

6.

 

实验总结

  • 讨论ID3,C4.5的算法的应用场景
    ID3算法应用场景:
    他的基础理论清晰,算法比较简单,学习能力较强,适合处理大规模的学习问题,是数据挖掘和知识发现领域中的一个很好的范例,为后来各学者提出优化算法奠定了理论基础,ID3算法特别在机器学、知识发现和数据挖掘等领域得到了极大地发展。
    C4.5算法应用案例:
    C4.5算法具有条例清晰,能处理连续型属性,防止过拟合,准确性较高和使用范围广等优点,是一个很有使用价值的决策树算法,可以用来分类也可以用来回归。C4.5算法在机器学习,知识发现,金融分析,遥感影响1分类,生产制造、分析生物学和数据挖掘等领域得到广泛应用。
  • 分析决策树剪枝策略
    1. 决策树的剪枝策略包括预剪枝和后剪枝。先对数据集划分成训练集和验证集,训练集用来决定树生成过程中每个结点划分所选择的属性;验证集在预剪枝中用于决定该结点是否有必要依据该属性进行展开,在后剪枝中用于判断该结点是否需要进行剪枝。
    2. 预剪枝(pre-pruning):预剪枝就是在构造决策树的过程中,先对每个结点在划分前进行估计,若果当前结点的划分不能带来决策树模型泛华性能的提升,则不对当前结点进行划分并且将当前结点标记为叶结点预剪枝
    3. 后剪枝(post-pruning):后剪枝就是先把整颗决策树构造完毕,然后自底向上的对非叶结点进行考察,若将该结点对应的子树换为叶结点能够带来泛华性能的提升,则把该子树替换为叶结点。

停止决策树生长最简单的方法有:

1.定义一个高度,当决策树达到该高度时就停止决策树的生长

2.达到某个节点的实例具有相同的特征向量,及时这些实例不属于同一类,也可以停止决策树的生长。这个方法对于处理

数据的数据冲突问题比较有效。

3.定义一个阈值,当达到某个节点的实例个数小于阈值时就可以停止决策树的生长

4.定义一个阈值,通过计算每次扩张对系统性能的增益,并比较增益值与该阈值大小来决定是否停止决策树的生长。
Reduced-Error Pruning(REP,错误率降低剪枝)

Pesimistic-Error Pruning(PEP,悲观错误剪枝)

Cost-Complexity Pruning(CCP,代价复杂度剪枝)

EBP(Error-Based Pruning)(基于错误的剪枝)

 

posted @ 2022-10-30 23:02  哈哈很厉害  阅读(225)  评论(0)    收藏  举报