一 、概述
决策树: 是有监督学习的一种算法,并且是一种基本的分类与回归的方法。
决策树分为分类树和回归树,本章主要是分类树。
二、决策树的准备工作
决策树的构建分为三个过程:特征选择、决策树的生成、决策树的剪枝
1 原理: 由根节点到叶节点构成一条规则,中间结点的特征对应着规则的条件,叶结点的特征(类标签)对应着结论。决策树路径互斥且完备,即每一个实例被有且仅有一条路径或规则覆盖(实例满足规则的条件)。
2 特征选择
目的: 选取对训练数据具有分类能力的特征。
随着划分的进行,我们希望决策树的分支节点所包含的样本尽可能属于同一类别,也就是节点的纯度越来越高。
2.1香农熵
计算所有类别所有可能值包含的信息期望值: E n t ( D ) = − ∑ i = 1 n p ( x i ) log 2 p ( x i ) Ent(D) = - \sum_{i=1}^n{p(x_i)}\log_2^{p(x_i)} Ent(D)=−i=1∑np(xi)log2p(xi)
注:Ent(D)值越高,D的不纯度越高,混合数据越多。
'''
计算香农熵
'''
def calEnt(dataSet):
n = dataSet.shape[0]
iset = dataSet.iloc[:,-1].value_counts() #标记类别
p = iset/n #标签类别比
ent = (-p*np.log2(p)).sum() #信息熵
return ent
2.2信息增益
信息增益是父节点的信息熵与其下修正后的所有子节点总信息熵之差。
假设属性a有V个可能的值{ a 1 , a 2 , . . . , a v a^1, a^2,...,a^v a1,a