实验一:决策树算法实验

【实验目的】

  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  哈哈很厉害  阅读(267)  评论(0)    收藏  举报