实验二 决策树分类算法的实现及其应用
【实验目的】
- 掌握决策树分类算法ID3的概念,理解算法的步骤。
- 加深对ID3算法的理解,逐步培养解决实际问题的能力。
【实验性质】
设计型实验
【实验内容】
使用ID3算法来实现决策树分类
【实验环境】
Python 2
【实验结果】

【实验步骤】
程序清单3-1 计算给定数据集的香农熵
程序代码:
import operator
from math import log
def calcShannonEnt(dataSet):
numEntries=len(dataSet)
labelCounts={}
for featVec in dataSet:
currentLabel=featVec[-1]
if currentLabel not in labelCounts.keys():
labelCounts[currentLabel]=0
labelCounts[currentLabel]+=1
shannonEnt=0.0
for key in labelCounts:
prob=float(labelCounts[key]) / numEntries
shannonEnt -= prob*log(prob,2)
return shannonEnt
def createDataSet():
dataSet=[[1,1,'yes'],[1,1,'yes'],[1,0,'no'],[0,1,'no'],[0,1,'no']]
labels =['no surfacing','flippers']
return dataSet,labels
运行结果;

程序清单3-2 按照给定特征划分数据集
程序代码:
def splitDataSet(dataSet,axis,value):
retDataSet=[]
for featVec in dataSet:
if featVec[axis] == value:
reducedFeatVec=featVec[:axis]
reducedFeatVec.extend(featVec[axis+1:])
retDataSet.append(reducedFeatVec)

本文通过实验介绍了决策树分类算法ID3的实现过程,包括计算香农熵、选择最佳特征划分数据集、递归构建决策树等关键步骤,并展示了在Python中使用Matplotlib绘制树形图的方法,旨在帮助读者深入理解和应用ID3算法。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



