Decison Tree的注释:画图部分不给注释了
from math import log import numpy def calcShannonEnt(dataSet): numEntries = len(dataSet) labelCounts = {}
#这个是字典,{a:1,b:2}其中a,b是key,1,2是对应的value for featVec in dataSet: currentLabel = featVec[-1]
#-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():