集成学习之Bagging和RF

一、什么是随机森林

二、随机森林的两个随机

三、随机森林算法过程

四、为什么如此受欢迎

五、随机森林算法的优缺点

六、RF特征选择

***********************************************************************************************************

一、什么是随机森林

        随机是指随机抽样样本和随机选择特征,森林是指弱学习器是若干个决策树。

二、随机森林的两个随机

        随机抽样样本且有放回,所以每一个弱学习之间的训练集样本个数都相同为m,既有重复的也有不同的样本;构建决策树随机选择特征(可以达到降维的目的)

        (1)为什么样本随机且有放回抽样?

            随机是为了使每个学习器的训练集样本不同。如果训练集样本都相同,那么最后每个分类器的分类结果也是相同的。这样的话完全没有bagging的必要。

            有放回是为了使每棵树有一部分样本是重复的,这样保证了每棵树都不是那么完全不相同。如果不是有放回的抽样,这样每棵树的样本都是不一样的。每棵树都是"有偏的",都是绝对"片面的"(当然这样说可能不对),也就是说每棵树训练出来都是有很大的差异的。

        (2)为什么随机选择特征?

            如果每个样本的特征维度为M,指定一个常数m<

        注:由于采用两个随机防止过拟合且抗噪能力强(缺失值)。因为不会过度依赖训练数据了。

三、随机森林算法过程

       在随机森林中,每一个决策树“种植”和“生长”的四个步骤: 

       (1).假设我们设定训练集中的样本个数为N,然后通过有重置的重复多次抽样获得这N个样本,这样的抽样结果将作为我们生成决策树的训练集;

       (2).如果有M个输入变量,每个节点都将随机选择m(m

       (3).每棵决策树都最大可能地进行生长而不进行剪枝;

       (4).通过对所有的决策树进行加总来预测新的数据(在分类时采用多数投票,在回归时采用平均)。

四、为什么如此受欢迎

        1.算法本身具有的特点

            (1)在当前所有算法中,具有极好的准确率

            (2)能够有效地运行在大数据集上(因为随机采样数据,保证数据多样性故模型不能过拟合)

            (3)能够处理具有高维特征的输入样本,而且不需要降维(随机选择特征m<

            (4)能够评估各个特征在分类问题上的重要性

            (5)在生成过程中,能够获取到内部生成误差的一种无偏估计(oob的错误率)

            (6)对于缺省值问题也能够获得很好得结果

        2.业界评价RF

            泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来源,保留和流失,也可用来预测疾病的风险和病患者的易感性。在参加校外竞赛时接触到随机森林算法的。最近几年的国内外大赛,包括2013年百度校园电影推荐系统大赛、2014年阿里巴巴天池大数据竞赛以及Kaggle数据科学竞赛。

五、随机森林算法的优缺点

        优点

        (1)在分类和回归都表现良好

        (2)对高维数据的处理能力强,可以处理成千上万的输入变量,是一个非常不错的降维方法

        (3)能够输出特征的重要程度

        (4)有效的处理缺省值

六、RF特征选择

        选择特征的两个目的

        1.选择的特征与分类相关度

        2.选择尽量较少的特征同时能够充分预测应变量的结果

        特征选择的步骤:(利用OOB的数据和不断修改特征来更新决策树,最终形成最优决策树)

        (1)对于每一棵决策树,计算其oob error

        (2)随机的修改OOB中的每个特征xi的值,计算oob error_2,再次计算重要性

        (3)按照特征的重要性排序,然后剔除后面不重要的特征

        (4)然后重复以上步骤,直到选出m个特征。

        oob是什么?

        为了选择最优的m,这里需要利用的是袋外错误率oob(out-of-bag error)。我们知道,在构建每个决策树的时候,采用的是随机又放回的抽取,所以对于每棵树来说,都有一些样本实力没有参与树的生成,所以这些样本成为袋外样本,即oob。所以我们需要做一下oob估计:

         (1)对每个样本,计算它作为oob样本的树对它的分类情况

         (2)多数投票作为该样本的分类结果

         (3)用误分个数占样本总数的比率作为随机森林的oob误分率

        oob误分率是随机森林泛化误差的一个无偏估计,它的结果近似于需要大量计算的k折交叉验证。所以没有必要对它进行交叉验证或者用一个独立的测试集来获得误差的一个无偏估计。它可以在内部进行评估,也就是说在生成的过程中就可以对误差建立一个无偏估计。

        当我们知道了oob的计算方法,我们可以通过选取不同的m,计算oob error,找出oob error最小时对应的m的值。这和交叉验证的思想非常的相似。

        随机森林分类效果(错误率)与两个因素有关?

        (1)森林中任意两棵树的相关性:相关性越大,错误率越大;

        (2)森林中每棵树的分类能力:每棵树的分类能力越强,整个森林的错误率越低。

       减小特征选择个数m,树的相关性和分类能力也会相应的降低;增大m,两者也会随之增大。所以关键问题是如何选择最优的m(或者是范围),这也是随机森林唯一的一个参数。在学习如何选择参数前首先介绍oob的概念。

你可能感兴趣的:(集成学习之Bagging和RF)