1 / 5
文档名称:

使用ID3算法实现决策树.doc

格式:doc   大小:83KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

使用ID3算法实现决策树.doc

上传人:小辰GG 2022/6/5 文件大小:83 KB

下载得到文件列表

使用ID3算法实现决策树.doc

相关文档

文档介绍

文档介绍:使用ID3算法实现决策树
决策树
基本介绍:
决策树通过把数据样本分配到某个叶子结点来确定数据集中样本所属的分类。
决策树由决策结点,分支和叶子结点组成。
决策结点表示在样本的一个属性上进行的划分;
分支表示对于决策结点进行划分mutual」nfo=0
best_feature=-1初始化最优特征
foriinrange(feature_num):
feature_list=[example[i]forexampleindataSet]获取数据集中当前特征下的所有值feature_class=set(feature_list)得到该特征的所有可能取值
conditional_entropy=0
forvalueinfeature_class:
retdataset=remove_feature(dataSet,i,value)去处某一特征,方便计算
Pi=len(retdataset)/float(len(dataSet))
conditional_entropy+=Pi*cal_entropy(retdataset)求条件熵
mutual_info=entropy-conditional_entropy互信息量
if(mutual」nfo>max_mutual」nfo):
比较每个特征的信息增益比,只要最好的信息增益比
max_mutual」nfo=mutual」nfobest_feature=i
returnbeslature
创建一个majority_vote方法将传入的数据按出现的频率进行降序排列,并返回第一个键名。
defmajority_vote(class_list):
class_count={}存各种分类出现的频率
forvoteinclass_list:
():
class_coun[lvote]=0
class_count[vote]+=1
对字典进行排序
sort_class_count=sorted((),key=(1),reverse=True)
排序来决定该节点的类
returnsortclasscount[0][0]
最后一步,根据得到的最优信息增益比生成决策树。
生成决策树
defcreate_tree(dataSet,labels):
class_list=[example[-1]forexampleindataSet]
终止条件1:class_list是否纯净(纯净就是数据中所有特征都相等)
(class_list[0])==len(class_list):
当整个数据中的类别完全相同时类别已经纯净了,则停止继续划分,直接返回该类的标签
returnclass_list[0]
iflen(dataSet[0])==1:
节点已没有特征可以继续分解
returnmajority_vote(class_list)
best_feature=choose_best_feature(dataSet)选择最好的分类特征索引
best_feature_label=labels[be