决策树算法 :
基本介绍 :
决策树算法是一类算法的集合,决策树顾名思义是在一棵树上进行决策的方法,称之为决策树算法,决策树首先是一棵树,树的每一个节点表示对一个特征的判断,每一个叶子节点表示一种判断的结果,下面的例子生动地解释了决策树算法的基本思想 : 每一层对每一个不同的特征进行判断,最后到叶子节点得到判断的答案。
决策树算法的基本流程
与一般的树的算法一样,是一种递归的过程。
CreateTree()
检查该节点数据集中的所有子项是否同属一个分类
if so return 类标签
else
寻找划分的最好特征 // 决策树的关键步骤
再次划分数据集
创建新的分支节点
遍历所有的分支节点
递归调用 CreateTree()
return 分支节点;
决策树的优劣 :
优点 : 计算复杂度不高,输出结果容易理解,算法得到的准确度较高,可以处理多种类型的数据
缺点 : 容易产生过拟合的问题
使用数据类型 : 数值型和标称型
算法的核心部分 :
算法和核心在于,如何选取最好的划分特征,划分特征的选取直接决定了分类器结果的好坏时间和空间的开销……
划分特征的原则是 : 将原本无序的数据变得更加有序。
对于不同的特征的选取办法我们分成了三种不同的决策树模型
1. ID3决策树 (根据信息增益选择最好的特征)
2. C4.5决策树(根据信息增益率选择最好的特征)
3. CART决策树 (根据基尼系数选择最好的特征)
信息增益
信息的定义为 :如果待分类的事物可能划分在多个类中,则符号 x 的信息定义为 l(x) = -log(p(x)) 其中 p(x) 是平均情况下选择该分类的概率。
信息论中熵的定义为 : 信息的期望值 也就是下图的公式
熵的意义是 : 描述信息的无序程度。p(i)的意思是每种类别占总样本的比例,p(i) 越大无序程度越小,反之越大
有了熵的定义之后我们就可以定义信息增益了。
信息增益就是未经行划分前的信息熵减去以这个特征为划分之后的加权信息熵,它反映了熵的变化,当然我们要选择一个熵变化最大的作为我们该层的划分依据
用式子表示就是
<