作家
登录

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

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

  •         # 获得信息增益 
  •         infoGain = baseEntropy - newEntropy 
  •         # 取最大年夜的信息增益,并记录下标 
  •         if (infoGain > bestInfoGain): 
  •             bestInfoGain = infoGain 
  •             bestFeature = i 
  •     # 返回下标 
  •     return bestFeature 
  • 数据集须要知足必定的请求:

    • 数据必须是一种有列表元素构成的列表。(二维数组)
    • 所有列表元素必须有雷同长度。
    • 最后一列必须是当前实例的标签。

    递归构建决定计划树

    机械进修决定计划树算法进修标记

    多半表决算法

    如不雅数据集已经处理了所有属性,然则类标签依然不是独一的,此时须要决定若何定义该叶子节点,在这种情况下,我们平日会采取多半表决决定该叶子节点。

    为了计算熵,须要计算所有类别所有可能值包含的信息期望值总和,公式为:

    1. import operator   
    2. def majorityCnt(classList):   
    3.     # 排序掏出种类最多的 
    4.     classCount={} 
    5.     for vote in classList: 
    6.         if vote not in classCount.keys(): classCount[vote] = 0 
    7.         classCount[vote] += 1 
    8.     sortedClassCount = sorted(classCount.iteritems(), key=operator.itemgetter(1), reverse=True
    9.     return sortedClassCount[0][0] 

    构建树算法

    1. def createTree(dataSet,labels):   
    2.     # 掏出结不雅 
    3.     classList = [example[-1] for example in dataSet] 
    4.     # 如不雅结不雅里的第一个元素所代表的数据个数等于结不雅本身,解释没有其他分类了 
    5.     if classList.count(classList[0]) == len(classList):  
    6.         return classList[0] 
    7.     # 如不雅没有更多半据了,跨越一个才有分类的意义 
    8.     if len(dataSet[0]) == 1: 
    9.         # 多半表决,返回出现次数最多的 
    10.         return majorityCnt(classList) 
    11.  
    12.     # 选出最合实用于切分类型的下标 
    13.     bestFeat = chooseBestFeatureToSplit(dataSet) 
    14.     # 根据下标掏出标签 
    15.     bestFeatLabel = labels[bestFeat] 
    16.     # 构建树 
    17.     myTree = {bestFeatLabel:{}} 

    18.   推荐阅读

        用gdb分析coredump的一些技巧

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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