zoukankan      html  css  js  c++  java
  • 每日一个机器学习算法——信息熵

    1 定义

    2 直观解释

    信息熵用来衡量信息量的大小

    若不确定性越大,则信息量越大,熵越大

    若不确定性越小,则信息量越小,熵越小

    比如A班对B班,胜率一个为x,另一个为1-x

    则信息熵为 -(xlogx + (1-x)log(1-x))

    求导后容易证明x=1/2时取得最大,最大值为2

    也就是说两者势均力敌时,不确定性最大,熵最大。

    3 应用

    数据挖掘中的决策树。

    构建决策树的过程,就是减小信息熵,减小不确定性。从而完整构造决策树模型。

    所以我们需要在每一次选择分支属性时,计算这样分类所带来的信息熵的增益,增益越大,不确定性越小,最终也就是我们要选择的分支属性。

    首先我们会在未进行任何分类前求取一个信息熵,这个信息熵涉及到只是简单的求取样本标签的分布,然后按照公式求解信息熵。

    之后在选用某一个属性作为分支属性后,我们需要计算每一个子分支中的样本标签的分布,然后计算每个子样本的信息熵,最后加权平均(期望),求得总的信息熵。

    计算前后两个信息熵的差值,选择最大的增益属性作为分支属性。

    一直递归下去,对每一个子样本套用上述方法。直到所有的样本都被归类于某个叶节点,即不可再分为止。

    以上方法是ID3方法,还有更好的C4.5方法

    C4.5方法选用信息增益比,克服了ID3使用信息增益选择属性时偏向取值较多的属性的不足。

    除了可以处理离散类型的属性,还可以处理连续型。

    处理连续型属性时,最重要的一步确定分割点。这里同样需要用到信息增益比。

    我们可以人工的为选择一系列的分割点,然后分别计算被分割点分割的前后两个区间的信息熵,最后加权求得该分割点情况下的信息熵。

    最后取信息增益最大的分割点作为分割条件。

    简而言之,和ID3相比,就是在计算分割点的时候,需要额外用到一次信息增益法。

  • 相关阅读:
    nginx概念
    leetcode——109.有序链表转换二叉搜索树
    leetcode——95.不同的二叉搜索树II
    leetcode——106.从中序和后序遍历序列构造二叉树
    leetcode——117. 填充每个节点的下一个右侧节点指针 II
    leetcode——99.恢复二叉搜索树
    leetcode——103.二叉树的锯齿形层次遍历
    leetcode——107.二叉树的层次遍历II
    leetcode——79.单词搜索
    leetcode——37.解数独
  • 原文地址:https://www.cnblogs.com/ShaneZhang/p/3970176.html
Copyright © 2011-2022 走看看