作家
登录

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

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

  •     # 删除掏出过的标签,避免反复计算 
  •     del(labels[bestFeat]) 
  •     featValues = [example[bestFeat] for example in dataSet] 
  •  
  •     # 应用set去重 
  •     uniqueVals = set(featValues) 
  •  
  •  
  •     for value in uniqueVals: 
  •         # 复制所有的子标签,因为是引用类型,以避免改变原始标签数据 
  •         subLabels = labels[:] 
  •         # 递归的构建树 
  •         myTree[bestFeatLabel][value] = createTree(splitDataSet(dataSet, bestFeat, value),subLabels) 
  •     return myTree 
  • 应用决定计划树分类

    1. def classify(inputTree,featLabels,testVec):   
    2.     firstStr = inputTree.keys()[0] 
    3.     secondDict = inputTree[firstStr] 
    4.     featIndex = featLabels.index(firstStr) 
    5.     # print 'featIndex %s' % (featIndex) 
    6.     key = testVec[featIndex] 
    7.     # print 'key %s' % (key
    8.     valueOfFeat = secondDict[key
    9.     if isinstance(valueOfFeat, dict):  
    10.         classLabel = classify(valueOfFeat, featLabels, testVec) 
    11.     else: classLabel = valueOfFeat 
    12.     return classLabel 
    13.  
    14. dataSet, labels = createDataSet()   
    15. mytree = createTree(dataSet, labels[:]) #因为内部会删除labels里的值所以用如许copy一份   
    16. print mytree   
    17. # {'no surfacing': {0: 'no', 1: {'flippers': {0: 'no', 1: 'yes'}}}} 
    18. print classify(mytree, labels, [0,1])   
    19. no 

    决定计划树的存储

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

    构造决定计划树是耗时的义务,即使处理很小的数据集。所以我们可以应用构造好的决定计划树。

    长处

    • 计算复杂度不高
    • 输出结不雅易于懂得
    • 对中心值缺掉不敏感
    • 可以处理不相干特侦

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


      推荐阅读

      用gdb分析coredump的一些技巧

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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