决策树
from math import log
import operator
def calcShannonEnt(dataSet):
"""
计算香农熵
:param dataSet:
:return:
"""
kinds = {
}
kindNum = len(dataSet[0])
for i in range(len(dataSet)):
kinds[dataSet[i][kindNum - 1]] = kinds.get(dataSet[i][kindNum - 1], 0) + 1
shannonEnt = 0
for key in kinds:
shannonEnt += log(kinds[key] / len(dataSet), 2) * (kinds[key] / len(dataSet))
return -shannonEnt
def createDataSet():
dataSet = [['青绿','蜷缩','浊响','清晰','凹陷','硬滑','是'],
['乌黑','蜷缩','沉闷','清晰','凹陷','硬滑','是'],
['乌黑','蜷缩','浊响','清晰','凹陷','硬滑','是'],