决策树算法思想如下:
1.决策树就是一个树形结构,每一个非叶子节点可以在某一个特征属性上的判断,基于不同的判断条件,对数据进行划分为各个分支,每个分支代表这个特征属性在某个之于上的输出,每个叶子节点存放一个标签或者类别。
2.决策树算法利用熵来判断如果选择每次需要划分的特征属性;信息增益=划分前信息熵-按照此属性划分后的信息熵,或信息增益大于0,则说明划分后的不确定性减小了。划分是有效的。而信息增益最大的对应特征属性,即可作为此次划分的特征属性.
3.递归实现熵的计算和判断。从而完成整个决策树的划分。
代码实现如下:
#! /usr/bin/python #coding=utf-8 from math import log import operator #假设决策树应用为海洋动物是否为鱼类的分类。 def createDataSet(): dataSet = [[1,1,'yes'],[1,1,'yes'],[1,0,'no'],[0,1,'no']