机器学习算法7_决策树+ID3

机器学习算法第七篇

主要内容:决策树算法+ID3算法+熵+条件熵+信息增益(熵减)


通俗的讲决策树:



算法目的:

  • 求通过训练集计算出一个最合适的决策树模型,并可以对输入的样本进行分类



决策树原理:

  • 相同的原因会生产相同类似的结果---->相同的输入特征会产生相同或相似的输出y



决策树的结构:

  • 由节点和有向边组成,内部节点表示一个特征或属性,叶子节点表示一个类



分类的过程:

  1. 从根节点开始,根据节点的分类标准(该标准在决策树生成的时候已经决定了)对样本某一特征进行测试,根据结果,将样本分配到相应的子节点
  2. 循环进行第1步,直到叶子节点
  3. 根据叶子节点的分类标记决定该样本的分类(叶子节点的分类由决策树生成的时候决定)



决策树的构建(训练阶段):

  1. 构建根节点,将所有训练数据存放在根节点
  2. 选择一个最优的特征,按照这个特征将训练数据集分割成子集,使得各个子集是最好的分类
    (这个特征的分类标准即为该节点的分类标准,ID3算法对选择最优的特征采用的是信息增益最大的方法)
  3. 如果某个子集可以很好的对数据进行分类,则对该子集建立叶子节点.
    (将子集中数量最多的y的分类标记为叶子节点的分类标记)
  4. 如果某子集不能很好的对自己的数据进行分类,则继续重复2,3步 ,直到所有的数据都被分配到叶子节点




ID3算法:


算法概念:

  • ID3算法在决策树构建的时候,选择最优特征的一种算法,它的核心是在决策树各个节点应用信息增益准则选择特征


信息增益准则:

  • 对训练集数据,计算他们的每个特征的信息增益,并比较他们的大小,选择信息增益最大的特征


信息增益的计算:

为了更好的计算,先定义下熵和条件熵

熵:表示随机变量不确定性的度量

设 X 是 一 个 取 有 限 值 的 离 散 随 机 变 量 , 其 概 率 分 布 P ( X = x i ) = p i , i = 1 , 2 , 3... n 则 关 于 随 机 变 量 X 的 熵 定 义 为 设X是一个取有限值的离散随机变量,其概率分布P(X=x_i)=p_i,i=1,2,3...n \\则关于随机变量X的熵定义为 X,P(X=xi)=pi,i=1,2,3...nX
(1) H ( X ) = − ∑ i = 1 n p i l o g p i H(X)=-\sum_{i=1}^np_ilogp_i\tag1 H(X)=i=1npilogpi(1)
通 常 ( 1 ) 式 中 对 数 取 2 或 e 为 底 , 若 p i = 0 , 则 定 义 − l o g 0 = 0 通常(1)式中对数取2或e为底, 若p_i=0,则定义-log0=0 (1)2e,pi=0,log0=0
由 ( 1 ) 式 我 们 可 以 知 道 熵 只 与 X 的 分 布 有 段 , 所 有 我 们 也 称 X 的 熵 为 H ( p ) 由(1)式我们可以知道熵只与X的分布有段,所有我们也称X的熵为H(p) (1)X,XH(p)




条件熵H(X|Y):表示在一直随机变量X的条件下随机变量Y的不确定性

设 有 随 机 变 量 ( X , Y ) , 其 联 合 概 率 分 布 为 P ( X = x i , Y = y j ) = p i j , i = 1 , 2 , 3 , . . , n ; j = 1 , 2 , 3... , m 则 X 给 定 的 情 况 下 Y 的 条 件 熵 的 定 义 为 : 设有随机变量(X,Y),其联合概率分布为P(X=x_i,Y=y_j)=p_{ij}, i=1,2,3,..,n;j=1,2,3...,m\\ 则X给定的情况下Y的条件熵的定义为: (X,Y),P(X=xi,Y=yj)=pij,i=1,2,3,..,n;j=1,2,3...,mXY:
(2) H ( Y ∣ X ) = ∑ i = 1 n p i H ( Y ∣ X = x i ) H(Y|X)=\sum_{i=1}^np_iH(Y|X=x_i)\tag2 H(YX)=i=1npiH(YX=xi)(2)




信息增益表示:得知特征X的信息而使得类Y的信息不确定性减少的程度

定 义 特 征 A 对 训 练 集 D 的 信 息 增 益 g ( D , A ) 为 : 定义特征A对训练集D的信息增益g(D,A)为: ADg(D,A):
(3) g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A)\tag3 g(D,A)=H(D)H(DA)(3)




利用信息增益准则挑选特征的原理:

给 定 训 练 数 据 集 D 和 特 征 值 A , 熵 H ( D ) 表 示 对 数 据 D 进 行 分 类 的 不 确 定 性 ( 我 们 希 望 它 越 小 越 好 ) 而 条 件 熵 H ( D ∣ A ) 表 示 在 特 征 A 确 定 的 情 况 下 对 数 据 集 D 进 行 分 类 的 不 确 定 性 ( 一 次 比 较 中 , 我 们 选 条 件 熵 较 小 的 特 征 ) 那 么 他 们 的 差 , 就 表 示 由 特 征 A 发 生 而 使 得 对 数 据 集 D 的 分 类 不 确 定 性 减 少 的 程 度 ( 即 A 发 生 对 D 的 造 成 的 熵 减 ) 显 然 信 息 增 益 ( 熵 减 ) 最 大 的 特 征 具 有 更 强 的 分 类 能 力 , 所 以 我 们 选 信 息 增 益 最 大 ( 熵 减 ) 最 大 的 特 征 ) 给定训练数据集D和特征值A,熵H(D)表示对数据D进行分类的不确定性(我们希望它越小越好 )\\ 而条件熵H(D|A)表示在特征A确定的情况下对数据集D进行分类的不确定性(一次比较中,我们选条件熵较小的特征 )\\ 那么他们的差,就表示由特征A发生而使得对数据集D的分类不确定性减少的程度(即A发生对D的造成的熵减)\\ 显然信息增益(熵减)最大的特征具有更强的分类能力,所以我们选信息增益最大(熵减)最大的特征) DA,H(D)D()H(DA)AD(,),A使D(AD)(),())




为进一步理解,展开熵 H ( P ) H(P) H(P)与条件熵 H ( Y ∣ X ) H(Y|X) H(YX)的具体计算公式:

首先定义下公式所用的小示例

  • 设 训 练 集 数 据 D , 则 ∣ D ∣ 表 示 样 本 总 个 数 设训练集数据D,则\vert D\vert表示样本总个数 D,D

  • 设 训 练 集 里 有 K 个 分 类 , k = 1 , 2 , . . . , K , 则 ∣ C k ∣ 为 属 于 k 类 的 样 本 总 数 , 即 ∑ i = 1 K ∣ C k ∣ = ∣ D ∣ 设训练集里有K个分类,k=1,2,...,K,则\vert C_k\vert为属于k类的样本总数,即\sum^K_{i=1}\vert C_k\vert=\vert D\vert K,k=1,2,...,K,Ckk,i=1KCk=D

  • 设 特 征 A 有 n 个 不 同 的 取 值 { a 1 , a 2 . . . a n } , 则 根 据 A 的 取 值 可 将 D 划 分 为 n 个 子 集 D 1 , D 2 . . . D n , ∣ D i ∣ 为 属 于 D i 的 样 本 总 数 即 ∑ i = 1 n ∣ D i ∣ = ∣ D ∣ 设特征A有n个不同的取值\{a_1,a_2...a_n\},则根据A的取值可将D划分为n个子集D_1,D_2...D_n,\\ \vert D_i\vert为属于D_i的样本总数即\sum^n_{i=1}\vert D_i\vert=\vert D\vert An{a1,a2...an},ADnD1,D2...Dn,DiDii=1nDi=D

  • 设 子 集 D i 中 的 同 时 也 属 于 类 C k 的 样 本 集 合 , 记 做 D i k , 即 D i k = D i ∩ C k , 记 ∣ D i k ∣ 为 集 合 D i k 样 本 的 个 数 设子集D_i中的同时也属于类C_k的样本集合,记做D_{ik},即D_{ik}=D_i\cap C_k,记\vert D_{ik}\vert为集合D_{ik}样本的个数 DiCk,Dik,Dik=DiCk,DikDik




    计算数据集D的熵:

H ( D ) = − ∑ k = 1 K ∣ C k ∣ ∣ D ∣ l o g 2 ∣ C k ∣ ∣ D ∣ H(D)=-\sum_{k=1}^K\frac{\vert C_k\vert}{\vert D\vert}log_2\frac{\vert C_k\vert}{\vert D\vert} H(D)=k=1KDCklog2DCk




计算特征A对数据集D的条件熵:

(4) H ( D ∣ A ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ H ( D i ) = ∑ i = 1 n ( ∣ D i ∣ ∣ D ∣ ∑ k = 1 K ∣ D i k ∣ ∣ D i ∣ l o g 2 ∣ D i k ∣ ∣ D i ∣ ) H(D|A)= \sum_{i=1}^n\frac{\vert D_i\vert}{\vert D\vert}H(D_i)= \sum_{i=1}^n\left( \frac{\vert D_i\vert}{\vert D\vert} \sum_{k=1}^K\frac{\vert D_{ik}\vert}{\vert D_i\vert}log_2\frac{\vert D_{ik}\vert}{\vert D_i\vert} \right)\tag4 H(DA)=i=1nDDiH(Di)=i=1n(DDik=1KDiDiklog2DiDik)(4)




计算特征A对数据集D的信息增益:

g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值