递归构建决策树
划分数据集时的数据路径
#
# 改函数使用分类名称的列表,然后创建键值为classList中唯一的字典数据,
# 字典对象存储了classList中每个类标签出现的频率,租后利用operator操作键值排序字典,并返回出现次数最多的分类名称
#
# classList的解释:这是分类名称的列表
#
def majorityCnt(classList):
#创建分类的统计
classCount = {}
for vote in classList:
#如果vote不在classCount中,将这个出现的次数设置为0
if vote not in classCount.keys():
classCount[vote] = 0
#将出现的次数+1
classCount[vote]+=1
#将出现的次数排序
sortedClassCount=sorted(classCount.items(),key=operator.itemgetter(1),reverse=True)
#返回出现频率最多的那个class
return sortedClassCount[0][0]
创建决策树
#
# 参数1:数据集,参数2:标签列表(包含了数据集中所有的特征的标签)
# 数据集的要求:与之前相同
# 1,数据必须是一种由列表元素组成的列表,而且所有列表元素都具有相同的数据长度
# 2,数据的最后一列,或者每个实例最后一个元祖是当前实例的类别的标签
#
#
def