决策树
Telescope@moon
这个作者很懒,什么都没留下…
展开
-
计算给定数据集的香农熵
构造决策树,面对一个数据集,首先找到具有决定性作用的特征,对每个特征进行评估,然后根据特征划分数据集。 如果分支下的数据属于同一类型,即停止,不属于同一类型,重复划分数据子集。 采用量化的方法判断如何划分数据 在划分数据集之前之后信息发生的变化称为信息增益,获得信息增益最高的特征就是最好的选择。 from math import log#math模块中的对数函数 def calcSh...原创 2018-07-28 15:00:30 · 3006 阅读 · 0 评论 -
划分数据集
如果要在一个二维数据散点图中间画一条线将数据集分开,是按照x划分还是y划分呢 from math import log def createDataSet(): dataSet = [[1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'...原创 2018-07-28 18:19:01 · 710 阅读 · 0 评论 -
递归构建决策树
def majorityCnt(classList):#传入的参数是已经划分完所有特征之后的数据集,例如[['yes'],['yes'],['maybe']] classCount={}#创建一个字典 for vote in classList: if vote in classList: classCount[vote] = 0 ...原创 2018-07-28 21:07:45 · 1273 阅读 · 0 评论 -
Matplotlib注解
import matplotlib.pyplot as plt #定义文本框和箭头模式 decisionNode = dict(boxstyle="sawtooth", fc="0.8") leafNode = dict(boxstyle="round4", fc="0.8") arrow_args = dict(arrowstyle="&原创 2018-07-28 21:56:10 · 218 阅读 · 0 评论 -
构造注解树
def getNumLeafs(myTree): numLeafs = 0 firstStr = list(myTree.keys())[0]# firstStr = 'no surfacing’ secondDict = myTree[firstStr]#secondDict = myTree[firstStr] = {0: 'no', 1:{'flipp...原创 2018-07-29 21:27:24 · 457 阅读 · 0 评论 -
决策树的测试和存储、示例:使用决策树预测隐形眼镜类型
测试算法:使用决策树的分类函数 def classify(inputTree,featLabels, testVec):#传入(myTree,labels,[1,0]),结果是‘no’labels = ['no surfacing','flippers'] #myTree {'no surfacing': {0: 'no', 1:{'flippers':{0: 'no', 1: 'y...原创 2018-07-30 11:22:23 · 1467 阅读 · 0 评论