随机森林实例:利用基于CART算法的随机森林(Random Forest)树分类方法对于红酒质量进行预测
1、引言
随机森林(Random Forest)是一种基于决策树的集成学习(Ensemble Learning)方法,其基本思想是通过集成学习的思想将多课决策树集成的一种算法,基本构成单元是决策树,本质上为集成学习方法。随机森林可以分为两个部分来看,一部分是“随机”,另一部分是“森林”。所谓“森林”,就是指由很多棵“树”构成的,每一棵树都是一棵决策树;而“随机”的含义则会在后续的理论介绍部分详细介绍。对于我们所要研究的分类问题而言,直观上来说,每棵决策树都是对于给定数据集的一个“分类器”,如果我们所建立的森林有N棵决策树,那么对于一个给定数据就能得到N个分类结果,随机森林再将所有的结果集合起来,投票选出次数最多的结果作为最终的输出。
作为新兴起的、高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来源,保留和流失,也可用来预测疾病的风险和病患者的易感性。
2、理论基础
2.1 什么是决策树
决策树算法(Decision Tree)算法是一种基本的分类与回归方法,是我们最经常使用的数据挖掘算法之一。决策树模型是一种树形结构,在常见的分类问题中,表现为基于特征对于数据实例进行分类的过程,其基本规则是if-then规则。如下图所示,对于一组具有二维特征变量的数据,利用两个叶节点的处理后,我们可以将数据的两种分类区分开来;从空间上来说,是将数据空间按其分类分为了两个部分。一般而言,决策树学习通常包括3个步骤:特征选择、决策树的生成和决策树的修剪三个步骤。
2.2 特征选择的算法
决策树最重要的步骤就是如何选择合适的标准对于数据进行分类。而对于数据进行分类的依据是信息增益。
这里首先要引入信息论的相关知识:
熵(entropy):熵指的是体系的混乱程度
信息论(information theory)中的熵(又称为香农熵):是一种信息度量方式,表示的第一个数据集中的信息的混乱的程度,一般而言,数据集中的信息越有序,信息熵越低, 信息越无序,信息熵就越高。对于数据分类而言,一组数据中的类别越多,其信息的混乱程度也就越高,类别越少其混乱程度越低。下图表示了包含了两类数据的数据组的数据构成比例与其信息混乱程度之间的关系,可以看到当数据越接近于由单一类别构成时,信息混乱程度越低,而数据构成越接近于1:1时(对于两类数据而言),其信息混乱程度越来越高。
信息增益(information gain):指的是在选定特征划分数据集前后的信息熵的变化情况。 一般来说,决策树在决定信息混乱程度的常见算法有三种,即:
2.2.1 ID3:基于信息增益的特征划分
ID3算法的信息增益算法基础是香农熵,熵定义为信息的期望值。如果待分类的对象可能被划分在多个种类中,那么我们定义对象x_i的信息为:
l ( x i ) = − log 2 ( p ( x i ) ) l(x_i)=-\log_2\left(p(x_i)\right) l(xi)=−log2(p(xi))
其中 p ( x i ) p(x_i) p(xi)是选择该分类的概率。为了对于数据集的熵进行计算,我们需要对于所有类别所有可能值包含的信息期望值,即有:
H ( D ) = − ∑ k = 1 K ∣ C k ∣ D log 2 ∣ C k ∣ D = − ∑ i = 1 n p ( x i ) log 2 p ( x i ) H(D)=-\sum_{k=1}^K\frac{\vert C_k\vert}D\log_2\frac{\vert C_k\vert}D=-{\textstyle\sum_{i=1}^n}p(x_i)\log_2p(x_i) H(D)=−k=1∑KD∣Ck∣log2D∣Ck∣=−∑i=1np(xi)log2p(xi)
信息增益可以表示为:
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D\vert A) g(D,A)=H(D)−H(D∣A) H ( D ∣ A ) = ∑ i = 1 n D i D H ( D i ) = − ∑ i = 1 n ∑ k = 1 K ∣ D i k ∣ D i log ∣ D i k ∣ D i H(D\vert A)=\sum_{i=1}^n\frac{D_i}DH(D_i)=-\sum_{i=1}^n\sum_{k=1}^K\frac{\vert D_{ik}\vert}{D_i}\log\frac{\vert D_{ik}\vert}{D_i} H(D∣A)=i=1∑nDDiH(Di)=−i=1∑nk=1∑KDi∣Dik∣logDi∣D