【数据挖掘】笔记二-决策树

决策树

  • 关于分类

    • 分类
      是机器学会一个分类函数或分类模型(也常称为分类器),该模型能把数据库中的数据项映射到给定类别中的某一个。
    • 分类的目的
      分析输入的数据,通过在训练集中的数据表现出来的特性,为每一个类找到一个准确的描述或者模型。由此生成的类描述用来对未来的测试数据进行分类
    • 分类器构造方法
      • 统计方法
      • 机器学习法
      • 神经网络方法
      • 粗糙法
    • 分类器的评价标准
      • 预测准确度:应用的最多,特别是对于预测型分类任务。目前公认的是10拆分层交叉验证法(10-fold cross validation,最常用)
      • 计算复杂度:在数据挖掘中由于操作对象是海量的数据库,因此空间 和时间复杂 度是一个非常重要的环节 。
      • 模型描述简洁度:对于描述型分类任务,模型描述越简洁越受欢迎。
  • 决策树

    • 概念
      1. 决策树是一种分类器,是一个有向、无环树。
      2. 树中根节点没有父节点,一个节点可以有多个或者没有子节点。
      3. 每个叶节点都对应一个类别标识C的值;每个内部节点都对应一个用于分割数据集的属性 X i X_i Xi,称为分割属性;每个内部节点都有一个分割判断规则 q j q_j qj
      4. 节点n的分割属性和分割判断规则组成了节点n的分割标准。

CLS算法

  • 原理
    从一棵空的决策树开始,选择某一属性作为测试属性,该测试属性对应决策树中的决策结点,根据该属性值的不同,可将训练样本分成相应的子集,如果该子集为空,或该子集中的样本属于同一类,则该子集为叶节点,否则该子集对应决策树的内部结点,即测试结点,需再选择一个新的测试属性进行划分,直到所有子集都为空或者属于同一类。

  • 栗子
    例如存在身高、体重、年龄等属性,从中选出一种属性,假设为身高,那么将样本按照身高进行划分,划分成多个子集,若子集为空或者子集中样本属于同一种类,那么该子集为叶子节点;否则继续取一种属性,假设为体重,继续划分。

    <=150cm
    >150cm
    <=50Kg
    <=50Kg
    身高
    体重
    A
    B
    C

ID3算法

  • 问题提出

    在上述CLS算法中,构造的决策树与选择的属性的顺序有关,如何正确的选取属性顺序成为了一个问题。ID3算法使用信息增益来决定选取的属性。

    • 信息的度量
      信息多少的度量。不同的数据资料包含的信息量可能差别很大,数据资料中含信息量的多少是由消除对事物认识的“不确定程度”来决定的。数据资料所消除的人们认识上“不确定程度”的大小,也就是数据资料中所包含信息的大小。
    • 信息量公式
      H ( x ) = − ∑ P ( X i ) l o g 2 P ( X i ) i = 1 , 2 , 3 , . . . . . . , n H(x) = -\sum P(X_i)log_2P(X_i) \\ i=1,2,3,......,n H(x)=P(Xi)log2P(Xi)i=1,2,3,......,n
    • 定义4-2:若存在n个相同的概率的状态 ,则每个状态的概率p是1/n,一个消息可以消除状态出现的不确定性,该消息传递的信息量为
      − l o g 2 ( p ) = l o g 2 ( n ) -log2(p)=log2(n) log2(p)=log2(n)
    • 定义4-3:若给定的概率分布
      P = ( p 1 , p 2 , . . . , p n ) P=(p1,p2,...,pn) P=(p1,p2...,pn)一个消息可以消除各属性状态出现的不确定性,则该消息传递的信息量称为P的熵,即:
      I ( P ) = − ( p 1 ∗ l o g 2 ( p 1 ) + . . . . p n ∗ l o g 2 ( p n ) ) I(P)=-(p1*log2(p1)+....pn*log2(pn)) I(P)=(p1log2(p1)+....pnlog2(pn))
    • 定义4-4:若一个记录的集合T根据类别属性的值分成相互独立的类 c 1 , . . . , c k c1,...,ck c1,...,ck,则识别T的一个元素所属哪个类所需要的信息量是 i n f o ( T ) = I ( P ) info(T)=I(P) info(T)=I(P),其中P是 ( c 1 , c 2... c k ) (c1,c2...ck) (c1,c2...ck)的概率分布,即 P = ( ∣ c 1 ∣ / ∣ T ∣ , . . . . . . , ∣ c k ∣ / ∣ T ∣ ) P=(|c1|/|T|,......,|ck|/|T|) P=(c1/T,......,ck/T)在上例中: I n f o ( T ) = I ( 9 / 14 , 5 / 14 ) = 0.94 Info(T)=I(9/14,5/14)=0.94 Info(T)=I(9/14,5/14)=0.94
    • 定义4-5:若我们先根据非类别属性X的值将T分成集合T1,T2…Tn,则确定T中的一个元素类的信息量可通过确定Ti的加权平均值来得到,即Info(Ti)的加权平均为: I N F O ( X , T ) = / ∣ T ∣ ∗ I N F O ( T i ) INFO(X,T)= / |T| *INFO(Ti) INFO(X,T)=/TINFO(Ti)在上例中针对属性Outlook可得:Info(Outlook)=0.694
    • 定义4-6:将增益Gain(X,T)定义为:
      G a i n ( X , T ) = I n f o ( T ) − I n f o ( X , T ) Gain(X,T)=Info(T)-Info(X,T) Gain(X,T)=Info(T)Info(X,T)即增益的定义是两个信息量之 间的差值。
    • 算法计算每个属性的信息增益 。具有最高信息增益 的属性 选作给定的集合T的测试属性。创建一个 节点 ,并以该属性标记,对属性的每个值创建分支,并据此划分样本。
  • 举例

计算“年龄”的信息增益

ID年龄收入是否为学生信用等级是否购买电脑
1<30
2<30
330-40
4>40
5>40
6>40
730-40
8<30
9<30
10>40
11<30
1230-40
1330-40
14>40
  1. 计算样本的期望信息
    I ( s 1 , s 2 ) = I ( 9 , 5 ) = − 9 / 14 l o g 2 ( 9 / 14 ) − 5 / 14 l o g 2 ( 5 / 14 ) = 0.940 I(s_1,s_2)=I(9,5)=-9/14log2(9/14)-5/14log2(5/14)=0.940 I(s1,s2)=I(9,5)=9/14log2(9/14)5/14log2(5/14)=0.940
    s1表示种类“是”,s2表示种类“否”

  2. 计算age属性的熵

    • age < 30
      I ( s 11 , s 21 ) = − 2 / 5 l o g 2 ( 2 / 5 ) − 3 / 5 l o g 2 ( 3 / 5 ) = 0.971 I(s_{11},s_{21})=-2/5log2 (2/5)-3/5log2 (3/5)=0.971 I(s11,s21)=2/5log2(2/5)3/5log2(3/5)=0.971
      其中s11表示age<30时种类“是”,s21表示age<30时种类“否”
    • age = 31-40
      I ( s 12 , s 22 ) = 0 I(s_{12},s_{22})=0 I(s12,s22)=0
      其中s11表示 age = 31-40时种类“是”,s21表示a age = 31-40时种类“否”
    • age > 40
      I ( s 13 , s 23 ) = 0.971 I(s_{13},s_{23})=0.971 I(s13,s23)=0.971
      其中s11表示age > 40时种类“是”,s21表示age > 40时种类“否”
  3. 计算期望信息
    E ( a g e ) = 5 / 14 I ( s 11 , s 21 ) + 4 / 14 I ( s 12 , s 22 ) + 5 / 14 I ( s 13 , s 23 ) = 0.694 E(age)=5/14 I(s_{11},s_{21})+4/14I(s_{12},s_{22})+5/14I(s_{13},s_{23})=0.694 E(age)=5/14I(s11,s21)+4/14I(s12,s22)+5/14I(s13,s23)=0.694

  4. 计算增益
    G a i n ( a g e ) = I ( s 1 , s 2 ) − E ( a g e ) = 0.246 Gain(age)=I(s_1,s_2)-E(age)=0.246 Gain(age)=I(s1,s2)E(age)=0.246

  • 计算所有属性的信息增益,选取信息增益最大的属性
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值