人工智能算法—决策树

 

    文/腾讯soso 林世飞

 

    决策树方法最早产生于上世纪60年代,到70年代末。由J Ross Quinlan提出了ID3算法,此算法的目的在于减少树的深度。但是忽略了叶子数目的研究。C4.5算法在ID3算法的基础上进行了改进,对于预测变量的缺值处理、剪枝技术、派生规则等方面作了较大改进,既适合于分类问题,又适合于回归问题

    这里 介绍其基本原理 和一个实验例子。

    先介绍2个算法:

    算法一:熵(entropy

    熵(entropy)指的是体系的混乱的程度,当我们尝试把混合集合A={B1,B2,C1,C2…..} (其中Bx表示一个类别的元素,Cx表示另外一个) 划分为2个集合 MN(即决策树的2个分支时候),比较好的划分是 M 里面都是 BxN里面都是Cx,这时候我们需要一个函数对 划分以后 的 集合进行评估,看看是否纯度 够“纯”。如果很纯,很有序,熵就是0.

    理解该公式:   p(xi) 越平均,系统约混乱,如果系统只有2个元素x1x2x1出现概率是0.5x2出现概率也是0.5,即p(x1) =0.5  p(x2) =0.5 ,这时公式计算结果为1p(xi)如果比较不平均,比如p(x2) =1,那就是系统很确定,一点都不混乱,肯定是x2构成,这时熵计算结果就是0.

    这个规律刚刚好是 log 函数特点 过(10)这个点(见下图),我想这个就是克劳德·艾尔伍德·香农设计这个公式选择log函数的道理。

    用python 实现就是 :

    def entropy(l):

    from math import log

    #函数编程语法,定义一个函数

    log2=lambda x:log(x)/log(2)

    total=len(l)

    counts={}

    #统计每个类型出现格式

    for item in l:

    counts.setdefault(item,0)

    counts[item]+=1

    ent=0

    for i in counts:

    p=float(counts[i])/total #计算概率

    ent-=p*log2(p)   #熵计算

    return ent


    算法二:除了 熵,还有一个衡量一个集合是否混乱的方法叫 Gini Impurity (基尼不纯度)方法。

    公式如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值