一、【实验目的】
理解决策树算法原理,掌握决策树算法框架;
理解决策树学习算法的特征选择、树的生成和树的剪枝;
能根据不同的数据类型,选择不同的决策树算法;
针对特定应用场景及数据,能应用决策树算法解决实际问题。
二、【实验内容】
设计算法实现熵、经验条件熵、信息增益等方法。
针对给定的房贷数据集(数据集表格见附录1)实现ID3算法。
熟悉sklearn库中的决策树算法;
针对iris数据集,应用sklearn的决策树算法进行类别预测。
三、【实验报告要求】
对照实验内容,撰写实验过程、算法及测试结果;
代码规范化:命名规则、注释;
查阅文献,讨论ID3、5算法的应用场景;
查询文献,分析决策树剪枝策略。
实验内容及结果
(1)导包
(2)导入数据
(3)计算信息熵
ID3算法:
scikit-learn实例:
实验小结
1、ID3算法应用场景:
它的基础理论清晰,算法比较简单,学习能力较强,适于处理大规模的学习问题,是数据挖掘和知识发现领域中的一个很好的范例,为后来各学者提出优化算法奠定了理论基础。ID3算法特别在机器学习、知识发现和数据挖掘等领域得到了极大发展。
2、分析决策树剪枝策略
剪枝的目的在于:缓解决策树的"过拟合",降低模型复杂度,提高模型整体的学习效率,决策树生成学习局部的模型,而决策树剪枝学习整体的模型
基本策略:
预剪枝:是指在决策树生成过程中,对每一个结点在划分前进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶子结点。
降低了过拟合地风险,并显著减少了决策树地训练时间开销和测试时间开销。有些分支地当前划分虽不能提升泛化性能、甚至可能导致泛化性能下降,但是在其基础上进行地后续划分却可能导致性能显著提高;
后剪枝:先从训练集生成一棵完整的决策树,然后自底向上地对非叶子结点进行考察,若将该结点对应地子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。
一般情况下后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树,但是自底向上的注意考察,时间开销较高。