Python数据挖掘学习决策树

67 篇文章 11 订阅
16 篇文章 0 订阅

决策树的分类:决策树可以分为两类,主要取决于它目标变量的类型。

  • 离散性决策树:离散性决策树,其目标变量是离散的,如性别:男或女等;
  • 连续性决策树:连续性决策树,其目标变量是连续的,如工资、价格、年龄等;

 决策树相关的重要概念:

(1)根结点(Root Node):它表示整个样本集合,并且该节点可以进一步划分成两个或多个子集。

(2)拆分(Splitting):表示将一个结点拆分成多个子集的过程。

(3)决策结点(Decision Node):当一个子结点进一步被拆分成多个子节点时,这个子节点就叫做决策结点。

(4)叶子结点(Leaf/Terminal Node):无法再拆分的结点被称为叶子结点。

(5)剪枝(Pruning):移除决策树中子结点的过程就叫做剪枝,跟拆分过程相反。

(6)分支/子树(Branch/Sub-Tree):一棵决策树的一部分就叫做分支或子树。

(7)父结点和子结点(Paren and Child Node):一个结点被拆分成多个子节点,这个结点就叫做父节点;其拆分后的子结点也叫做子结点

构造过程:

  • 特征选择:从训练数据的特征中选择一个特征作为当前节点的分裂标准(特征选择的标准不同产生了不同的特征决策树算法)。
  • 决策树生成:根据所选特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止声场。
  • 剪枝:决策树容易过拟合,需要剪枝来缩小树的结构和规模(包括预剪枝和后剪枝)。

实现决策树的算法包括ID3、C4.5算法等。

一个典型例子:

决策树切分方法

  • 信息增益-ID3
  • 信息增益率-C4.5
  • Gini系数-CART

ID3算法的核心是在决策树各个节点上应用信息增益准则选择特征递归地构建决策树。ID3算法是由Ross Quinlan提出的决策树的一种算法实现,以信息论为基础,以信息熵和信息增益为衡量标准,从而实现对数据的归纳分类。ID3算法是建立在奥卡姆剃刀的基础上:越是小型的决策树越优于大的决策树(be simple简单理论)

(1)熵

在信息论中,熵(entropy)是随机变量不确定性的度量,也就是熵越大,则随机变量的不确定性越大。设X是一个取有限个值得离散随机变量,其概率分布为:

则随机变量X的熵定义为:

(2)条件熵

设有随机变量(X, Y),其联合概率分布为:

条件熵H(Y|X)表示在已知随机变量X的条件下,随机变量Y的不确定性。随机变量X给定的条件下随机变量Y的条件熵H(Y|X),定义为X给定条件下Y的条件概率分布的熵对X的数学期望:

当熵和条件熵中的概率由数据估计得到时(如极大似然估计),所对应的熵与条件熵分别称为经验熵和经验条件熵。

(3)信息增益

定义:信息增益表示由于得知特征A的信息后儿时的数据集D的分类不确定性减少的程度,定义为:

Gain(D,A) = H(D) – H(D|A)

             即集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(H|A)之差。

理解:选择划分后信息增益大的作为划分特征,说明使用该特征后划分得到的子集纯度越高,即不确定性越小。因此我们总是选择当前使得信息增益最大的特征来划分数据集。

缺点:信息增益偏向取值较多的特征(原因:当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分后的熵更低,即不确定性更低,因此信息增益更大)

ID3算法:

输入:训练数据集D,特征集A,阈值ε;

输出:决策树T.

  1. 若D中所有实例属于同一类,则T为单结点树,并将类作为该节点的类标记,返回T;
  2. 若A=Ø,则T为单结点树,并将D中实例数最大的类作为该节点的类标记,返回T;
  3. 否则,2.1.1(3)计算A中个特征对D的信息增益,选择信息增益最大的特征
  4. 如果的信息增益小于阈值ε,则T为单节点树,并将D中实例数最大的类作为该节点的类标记,返回T
  5. 否则,对的每一种可能值,依将D分割为若干非空子集,将中实例数最大的类作为标记,构建子结点,由结点及其子树构成树T,返回T;
  6. 对第i个子节点,以为训练集,以为特征集合,递归调用Step1~step5,得到子树,返回

 

C4.5算法:xxx

Gini系数:

定义:

基尼系数的意义:
    我们可以先来看一组数据

X的取值    方案一    方案二    方案三    方案四    P的平方    方案一    方案二    方案三    方案四
类别一    0.9    0.5    0.4    0.2    p1^2    0.81    0.25    0.16    0.04
类别二    0.1    0.5    0.3    0.2    p2^2    0.01    0.25    0.09    0.04
类别三    0    0    0.3    0.2    p3^2    0    0    0.09    0.04
类别四    0    0    0    0.2    p4^2    0    0    0    0.04
类别五    0    0    0    0.2    p5^2    0    0    0    0.04
基尼系数    0.18    0.5    0.66    0.8    总和    0.82    0.5    0.34    0.2
总和    1    1    1    1    基尼系数    0.18    0.5    0.66    0.8

    由上图我们可以观察到,类别的个数是 方案一(2个) < 方案三(3个) < 方案四(4个) ,基尼系数为 方案一 < 方案三 < 方案四;而方案一和方案二类别个数相同,但方案一的类别集中度比方案二要高,而基尼系数为  方案一  <  方案二

    基尼系数的特质是:
1) 类别个数越少,基尼系数越低;    
2)类别个数相同时,类别集中度越高,基尼系数越低。
当类别越少,类别集中度越高的时候,基尼系数越低;当类别越多,类别集中度越低的时候,基尼系数越高。
【类别集中度是指类别的概率差距,0.9+0.1的概率组合,比起0.5+0.5的概率组合集中度更高】

前剪枝:构建前规定了每个节点的样本数量或者深度等。

后剪枝:先构建,再想法子对悬殊的枝叶进行修剪。

后剪枝为例:

如果收入中等情况下,帅的人大概100个,不帅的1个,可以进行剪枝

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值