决策树(Decision Tree)
决策树,个人理解就是一系列如果-那么组合起来,就形成了一个决策树,最后的叶节点则是决策结果,比如吃什么饭菜,或者去哪个餐馆等决策行为。
决策树的关键是属性和属性值的确定。以找女朋友为例,首要的决策属性是性别,属性值是女。
如何从多个属性、属性值中找到合适的恰当的属性和属性值,就是决策树的关键。
而如何衡量属性找的好不好,就有各种指标。
周志华《机器学习》描述如下:
决策树(decision tree) 是一类常见的机器学习方法.以二分类任务为例,我们希望从给定训练数据集学得一个模型用以对新示例进行分类,这个把样本分类的任务,可看作对"当前样本属于正类吗?“这个问题的"决策"或"判定"过程.顾名思义,决策树是基于树结构来进行决策的,这恰是人类在面临决策问题时一种很自然的处理机制.例如,我们要对"这是好瓜吗?“这样的问题进行决策时,通常会进行一系列的判断或"子决策"我们先看"它是什么颜色?”,如果是"青绿色”,则我们再看"它的根蒂是什么形态?“,如果是"蜷缩”,我们再判断"它敲起来是什么声音?",最后?我们得出最终决策:这是个好瓜.决策过程如图所示
常见的有信息增益,基尼指数,Mse(回归用)
信息熵
信息熵定义如下:
D是集合,Pk是集合D中第k类样本所占的比例。Ent(D)的值越小,则D的纯度越高。例如一个集合全是男生,则信息熵为0,纯度最高;如果男女各占一半(1/2,1/2),则信息熵为1.
信息增益
最大信息增益的属性a的求解表示为:
选择信息增益最大也就是最纯的属性进行划分。这是显然的:如果按照信息增益划分,如果每一个样本都有一个独立不同的编号,则一定会按照编号就行划分,但是这显然不是我们想要的,于是引入增益率。
增益率
选择增益率最大的属性a来划分,表示如下:
基尼指数(Gini Index)
除了使用信息增益和增益率之外,还可以使用基尼指数来作为属性选择的判断指标。
难得写了,直接copy吧。别怪我。
剪枝处理
决策树一般会过拟合,泛化能力很差,通常会进行剪枝,剪枝就是剪掉一部分枝叶。
预剪枝:在进行节点是否继续划分的时候就决定这个枝丫要不要。
后剪枝:先把树建立起来,然后再剪掉多余的。
难得写,直接copy了。
样例数据
不剪枝的决策树
预剪枝的决策树
后剪枝决策树
随机森林(Random Forest)
粗俗的理解为把多个决策树联合起来使用。
不再展开,个人时间精力不够。
主要参考文献
周志华《机器学习》,也是大名鼎鼎的西瓜书