点击上方“潜心的Python小屋”关注我们,第一时间推送优质文章。
前言
大家好,我是潜心。本期介绍机器学习中的决策树。主要从特征选择的标准、剪枝技术、连续值与缺失值处理展开。
本文约5k字,预计阅读25分钟。
决策树
决策论中 (如风险管理),「决策树」(Decision tree)由一个决策图和可能的结果(包括资源成本和风险)组成, 用来创建到达目标的规划。在机器学习中,决策树作为最基础、最常见的「监督学习模型」,常被用于分类问题和回归问题(这里指的是CART算法)。如果将决策树的应用到「集成学习」(ensemble learning)的思想可以得到「随机森林」、「梯度提升决策树」等模型。
决策树学习的算法是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得各个子数据集有一个最好的分类的过程。这一过程对应着对特征空间的划分,也对应着决策树的构建。
开始:构建根节点,将所有训练数据都放在根节点,选择一个最优特征,按着这一特征将训练数据集分割成子集,使得各个子集有一个在当前条件下最好的分类。
如果这些子集已经能够被基本正确分类,那么构建叶节点,并将这些子集分到所对应的叶节点去。
如果还有子集不能够被正确的分类,那么就对这些子集选择新的最优特征,继续对其进行分割,构建相应的节点。
递归进行2,3,直至所有训练数据子集被基本正确的分类,或者没有合适的特征为止。
每个子集都被分到叶节点上,即都有了明确的类,这样就生成了一颗决策树。
这里我们以鸢尾花(iris)分类问题为例。鸢尾花的特征有:花瓣长度(petal length)、花瓣宽度(petal width)、花萼长度(sepal length)、花萼宽度(sepal width)四个特征,它的类别有:山鸢尾(setosa)、变色鸢尾(versicolor)、安德森鸢尾(virginica)三种类别。决策树的构建(CART算法)如下图,首先判断花瓣的长度(这里选择「gini指数」作为特征的选择)是否小于2.45cm,是则产生一个叶结点,全为山鸢尾,否则进行下一步最优划分特征:花瓣宽度是否小于1.75cm,分别产生两个子结点。再递归选择特征,直至所有的鸢尾花能被准确的划分到类别中。
从上述例子我们可以看到,「如何选择最优的特征」是决策树最为关键的因素。一般而言,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”越来越高。不同的最优特征选择方式也就对应了不同的决策树算法,常用的决策树算法有:ID3、C4.5、CART。
特征选择与决策树算法
信息增益---ID3
上篇文章机器学习笔记---信息熵我们提到「信息熵」是度量样本集合纯度最常用的指标。因为信息熵反映了随机变量的不确定性,即事件发生的混乱度,熵越大,则随机变量的不确定性越大。
故假设在样本集合 中第 类样本所占的比例为 ,则 的信息熵定义为:
的值越小,则所有样本属于同一类的的概率越高。
假定离散型特征 (注意:这里是离散型特征,ID3算法只能处理离散型变量,鸢尾花的分类就无法采用该算法,除非采用连续值处理方法)有 个可能的取值 ,即属性(特征) 下的子属性,产生