当前位置: 首页 > 科技观察

用Python从零开始构建决策树

时间:2023-03-19 12:23:49 科技观察

入门本章介绍如何只使用python自带的标准库,不使用第三方库构建决策树。熵计算公式:对应python代码:根据计算方法计算条件熵:对应python代码:参数future_list是由某个特征向量组成的列表,result_list是标签列表。信息增益根据信息增益的计算方法:对应的python代码:..定义决策树的节点作为树的节点,必须要有左子树和右子树,除此之外还有其他的information:树的节点会有两种状态,叶子节点中的results属性会保留当前的分类结果。在非叶子节点中,col保存着该节点计算出的特征索引,左右子树都是根据这个索引创建的。has_calc_index属性表示到达该节点时已经计算出的特征索引。特征索引数据集的表现是列的形式,比如数据集(不包括结果集):有三条数据,三个特征,那么第一个特征对应***列[1,0,0],其索引为0。递归停止条件本章将构建一棵完整的决策树,因此递归停止条件为所有待分析的训练集属于同一类别:从训练集中筛选出最好的特征,所以计算节点就是调用best_index=choose_best_future(node.data_set,node.labels,node.has_calc_index)得到信息增益最好的特征索引。构建决策树决策树需要一个属性来指向树的根节点和特征的数量。不需要保存训练集和结果集,因为这部分信息存储在树的节点中。创建决策树这里需要递归创建决策树:将训练集按照信息增益的特征索引分为左右子树。训练函数还需要一个拟合函数:清洗完训练集后,树节点中的数据集和结果集都不需要了,模型只需要col和result:预测函数提供了一个预测函数:测试数据集使用向量化上面《应用篇》的训练集: