数据挖掘学习笔记之决策树

决策树

从数据中产生决策树的数据学习称为决策数学习,简称决策数.决策树是数据挖掘中最常用的一种分类和预测技术,使用其可建立分类和预测模型;
它的形状如同一棵树,每个节点对于与对象的某个属性,每个分支对应这个属性的某个可能取值,每个叶节点表示经历从根节点到该叶节点这条路径上的对象的值;

决策树模型(图片来自于网络)

数据挖掘学习笔记之决策树_第1张图片

决策树算法的关键技术

决策树算法中有以下三项关键技术:
1.选择最能区别数据集中实例属性的方法
2.剪枝方法
3.检验方法
以上三项关键技术决定了决策树建立的三个重要环节:树分支节点的创建;剪枝和检验

(1)选择最能区别数据集中实例属性的方法
信息熵:信息变化的平均信息量,信息的熵越大,能传播的信息越多

信息熵的技术公式:
在这里插入图片描述

ID3算法:
在这里插入图片描述
信息增益公式(C4.5算法):
在这里插入图片描述
数据挖掘学习笔记之决策树_第2张图片在这里插入图片描述
(2)剪枝方法
算法目的:决策树的剪枝是为了简化决策树模型,避免过拟合。
方法:预剪枝,后剪枝
1)预剪枝:
通过提前停止树的构建而对树剪枝,一旦停止,节点就是树叶,该树叶持有子集元祖最频繁的类。
其方法:
1.定义一个高度,当决策树达到该高度时就停止决策树的生长

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

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

4.定义一个阈值,通过计算每次扩张对系统性能的增益,并比较增益值与该阈值大小来决定是否停止决策树的生长。
2)后剪枝:
它首先构造完整的决策树,允许树过度拟合训练数据,然后对那些置信度不够的结点子树用叶子结点来代替,该叶子的类标号用该结点子树中最频繁的类标记。相比于先剪枝,这种方法更常用,正是因为在先剪枝方法中精确地估计何时停止树增长很困难。
其方法:
Reduced-Error Pruning(REP,错误率降低剪枝)

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

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

EBP(Error-Based Pruning)(基于错误的剪枝)
(3)检验方法
在weka中提供了四种检验方法:
weka官网链接:https://www.cs.waikato.ac.nz/ml/weka/downloading.html
1)use training set:使用在训练集实例上的预测效果进行检验。

2)supplied test set:使用另外提供的检验集实例进行检验,此时需要单击Set按钮来选择用来检验的数据集文件。

3)cross-validation: 使用交叉验证(Cross Validation)来检验 分类器,所用的折数填在Folds文本框中。

4)percentsplit:百分比检验。从数据集中按一定百分比取出部分数据作为检验集实例用,根据分类器在这些实例上的预测效果来检验分类器的质量。取出的数据量由“%”栏中的值决定。

决策树的优点与局限性

优点:
(1)决策数容易被理解和被解释,并且可以被映射到一组更具有吸引力的产生式规则
(2)决策数不需要对数据的性质作预先的假设
(3)决策数能够使用数组型数据和分类类型数据的数据集建立模型
局限性:
(1)输出属性必须是分类类型,且输出属性必须为一个
(2)决策数算法是不稳定的,因为训练数据的微小变化将导致树中每个属性分裂点处有不同的选择,这种变化造成的影响很大,属性的选择影响着所有的后续子树

例子:

数据挖掘学习笔记之决策树_第3张图片
ID3解法:
数据挖掘学习笔记之决策树_第4张图片

数据挖掘学习笔记之决策树_第5张图片
数据挖掘学习笔记之决策树_第6张图片
数据挖掘学习笔记之决策树_第7张图片

你可能感兴趣的:(决策树,算法,数据挖掘,python,机器学习)