决策树可以从数据集合中提取出一系列规则,从而分类样本。它的优势是理解数据蕴含信息。
思想:利用信息增益(information gain)【度量数据集信息的方式—香农熵(entropy)】计算得出最好的划分数据集的特征,用递归的方式不断找下一个最好的划分特征,直到遍历完所有的属性(特征),或剩下实例的类别都相同时。返回的是用嵌套字典表示的树结构(嵌套就是递归实现的)。
局限:ID3无法直接处理数值型数据,一般应用对象是标称型数据。
import operator
import numpy as np
'''
ID3决策树预测隐形眼镜类型
'''
#----------------------------- build the tree --------------------------
# 多数表决法, 对统计个数排序
def majorityCnt(classList):
classCount = {}
for v in classList:
classCount[v] = classCount.get(v,0)+1
sortedClassCount = sorted(classCount.items(), key=operator.itemgetter(1), reverse=True)
return sortedClassCount[0][0]
# 计算香农熵
def calcShannonEnt(data):
numExm = len(data)
labelCounts = {}
for featVec in data:
curLabel = featVec[-1]
labelCounts[curLabel] = labelCounts.get(curLabel,0)+1
shannonEnt = 0.0
for key in labelCounts:
prob = float(lab

本文介绍了如何运用ID3算法构建决策树进行隐形眼镜类型的预测。通过利用信息增益(information gain)和香农熵(entropy)度量数据集信息,递归选择最佳划分特征。虽然ID3不适用于数值型数据,主要应用于标称型数据,并且构造过程可能耗时,但可以使用pickle模块存储决策树。此外,还提到了其他决策树构建算法如C4.5和CART。
最低0.47元/天 解锁文章
5619

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



