作家
登录

机器学习决策树算法学习笔记

作者: 来源: 2017-05-11 09:05:24 阅读 我要评论

  •     for key in labelCounts: 
  •         # 获灯揭捉?择该分类的概率 
  •         prob = float(labelCounts[key])/numEntries 
  •         # 按照公式 
  •         shannonEnt -= prob * log(prob,2) #log base 2 
  •     return shannonEnt 
  • 按照喷鼻农熵划分数据

    除了须要测量信息熵,还须要划分数据集,度量花费数据集的熵,以便断定当前是否精确划分。 轮回计算喷鼻浓熵和splitDataSet(),找到最好的特点划分方法。

    1. def splitDataSet(dataSet, axis, value):   
    2.     # 这个算法返回axis下标之外的列 
    3.     retDataSet = [] 
    4.     for featVec in dataSet: 
    5.         if featVec[axis] == value: 
    6.             reducedFeatVec = featVec[:axis]     #chop out axis used for splitting 
    7.             reducedFeatVec.extend(featVec[axis+1:]) 
    8.             retDataSet.append(reducedFeatVec) 
    9.     return retDataSet 
    10.  
    11. def chooseBestFeatureToSplit(dataSet):   
    12.     # 先取最后一列,用在标签结不雅:是鱼或不是鱼。 
    13.     numFeatures = len(dataSet[0]) - 1 
    14.     # 原始喷鼻浓熵 
    15.     baseEntropy = calcShannonEnt(dataSet) 
    16.  
    17.     bestInfoGain = 0.0; bestFeature = -1 
    18.     # 遍历所有的特点 
    19.     for i in range(numFeatures): 
    20.         # 创建一个列表包含这个特点的所有值 
    21.         featList = [example[i] for example in dataSet] 
    22.         # 应用set去重 
    23.         uniqueVals = set(featList) 
    24.         newEntropy = 0.0 
    25.         # 计算该特点所包含类型的喷鼻浓熵之和 
    26.         for value in uniqueVals: 
    27.             subDataSet = splitDataSet(dataSet, i, value) 
    28.             prob = len(subDataSet)/float(len(dataSet)) 
    29.             newEntropy += prob * calcShannonEnt(subDataSet) 

        推荐阅读

        用gdb分析coredump的一些技巧

      前几天我们正在运营的一款产品产生了崩溃,我花了两天测验测验用 gdb 分析了 coredump ,固然最后照样没能找到 bug ,但照样认为应当做一些总结。产品是基于 skynet 开辟的,因为汗青原因>>>详细阅读


      本文标题:机器学习决策树算法学习笔记

      地址:http://www.17bianji.com/lsqh/35136.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)