同样,这里把之前的实验报告搬出来。
引自百度:决策树算法是一种逼近离散函数值的方法。它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。
决策树的算法原理:
(1)通过把实例从根节点开始进行排列到某个叶子节点来进行分类的。
(2)叶子节点即为实例所属的分类的,树上的每个节点说明了实例的属性。
(3)树的生成,开始的所有数据都在根节点上,然后根据你所设定的标准进行分类,用不同的测试属性递归进行数据分析。
决策树的实现主要思路如下:
(1)先计算整体类别的熵
(2)计算每个特征将训练数据集分割成的每个子集的熵,并将这个熵乘以每个子集相对于这个训练集的频率,最后将这些乘积累加,就会得到一个个特征对应的信息增益。
(3)选择信息增益最大的作为最优特征分割训练数据集
(4)递归上述过程
(5)递归结束条件:训练集的所有实例属于同一类;或者所有特征已经使用完毕。
代码如下:
#!/usr/bin/python
#coding=utf-8
import operator
import math
#定义训练数据集
def createDataSet():
#用书上图8.2的数据
dataSet = [
['youth', 'no', 'no', 'no'],
['youth', 'yes', 'n