作家
登录

机器学习算法实践:决策树 (Decision Tree)

作者: 来源: 2017-07-18 18:02:17 阅读 我要评论

for _, (_, sub_classes) in splited_dict.items() 
  •  
  •         ]) 
  •  
  •         entropy_gains.append(base_entropy - new_entropy) 
  •  
  •   
  •  
  •     return entropy_gains.index(max(entropy_gains))  
  • 增益比率

    增益比率是信息增益办法的一种扩大,是为了克服信息增益带来的弱泛化的缺点。因为按照信息增益选择,老是会偏向于选择分支多的属性,如许会是的每个子集的信息熵最小。例如给每个数据添加一个第一无二的id值特点,则按照这个id值进行分类是获得信息增益最大年夜的,如许每个子集中的信息熵都为0,然则如许的分类便没有任何意义,没有任何泛化才能,类似过拟合。

    是以我们可以经由过程惹人一个决裂信息来找到一个更合适的衡量数据划分的标准,即增益比率。

    决裂信息的公式表示为:

    1. def get_nodes_edges(self, tree=None, root_node=None): 
    2.  
    3.     ''' 返回想中所有节点和边 
    4.  
    5.     ''
    6.  
    7.     Node = namedtuple('Node', ['id''label']) 
    8.  
    9.     Edge = namedtuple('Edge', ['start''end''label']) 
    10.  
    11.   
    12.  
    13.     if tree is None: 
    14.  
    15.         tree = self.tree 
    16.  
    17.   
    18.  
    19.     if type(tree) is not dict: 
    20.  
    21.         return [], [] 
    22.  
    23.   
    24.  
    25.     nodes, edges = [], [] 
    26.  
    27.   
    28.  
    29.     if root_node is None: 
    30.  
    31.         label = list(tree.keys())[0] 
    32.  
    33.         root_node = Node._make([uuid.uuid4(), label]) 
    34.  
    35.         nodes.append(root_node) 
    36.  
    37.   
    38.  
    39.     for edge_label, sub_tree in tree[root_node.label].items(): 
    40.  
    41.         node_label = list(sub_tree.keys())[0] if type(sub_tree) is dict else

        推荐阅读

        手机只需发条消息即可开始大规模SQL注入攻击

      【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! SQL注入(SQLi)应用不安然 Web App 和数据库驱动的类似软件,采取或修改数据(如用户账户记录),甚至在办事>>>详细阅读


      本文标题:机器学习算法实践:决策树 (Decision Tree)

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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