R语言随机森林初探

先介绍一下吧
在监督学习或者分类中,随机森林(RF)是一个非常好的分类学习算法。随机森林算法的实质是基于决策树的分类器集成算法,每一棵决策树给出一对实体的匹配决策,并根据所有的树的投票来得到最终决策。
基本思想:首先,通过自助法(bootstrap)重采样技术,从原始训练样本集N中有放回的重复随机抽取k个样本生成新的训练集样本集合,每个样本集合容量为k;其次,根据自助样本集生成k个决策树组成的随机森林,得到k种分类结果;最后,根据k种分类结果对每个记录进行投票表决来决定最终分类。
其实质是对决策树算法的一种改进,将多棵决策树组合在一起,每棵决策树的建立依赖于一个独立抽取的样本,形成森林中的每棵树都具有相同的分布,分类误差取决于每一棵决策树的分类能力和它们之间的相关性。步骤如下:
R语言随机森林初探_第1张图片
(1)首先我们用N表示原始训练集样本的个数,用M表示特征数目。
(2)从原始训练数据集中,应用bootstrap方法有放回地随机抽取k个新的自助样本集,并由此构建k棵分类回归树,每次未被抽到的样本组成了k个袋外数据(out-of-bag,OOB)。
(3)每个自助样本集生长为单棵决策树。在树的每个节点处从M个特征中随机挑选m个特征(m≤M),按照节点不纯度最小原则从这m个特征中选择一个特征进行节点分裂。
(4)每棵树都做最大限度的生长,不做任何剪裁。
(5)将生成的多棵决策树组成随机森林,根据每棵树的投票结果取得随机森林的分类结果。
在随机森林的构建过程中,自助样本集用于每一棵树分类器的形成,每次抽样生成的袋外数据(OOB)用来预测分类的正确率,对每次预测结果进行汇总得到OOB的错误率估计,然后评估组合分类的正确率。此外,随机森林通过每个节点处随机选择特征进行分支,最小化了各决策树之间的相关性,提高了分类精确度。
影响随机森林分类性能的主要因素:
1.森林中单棵树的分类强度:每一个决策树的分类强度越大,即每棵树枝叶越茂盛,则整体随机森林的分类性能越好。
2.森林中树之间的相关度:树与树之间的相关度越大,即树与树之间的枝叶相互穿插越多,则随机森林的分类性能越差。
随机森林的两个重要参数:
1.树节点预选的变量个数:单棵决策树决策树的情况。
2.随机森林中树的个数:随机森林的总体规模。
下载安装以及加载:
R:3.2.5
R语言随机森林初探_第2张图片
加载
这个软件包中有5个核心函数,分别为:
1.importance():提取建立模型的方程中变量的重要性度量结果
格式:importance(x,type=null,class=null,scale=TRUE,…)
通过自带数据集mtcars,直接上个实例:
R语言随机森林初探_第3张图片
2.MDSplot():绘制建立模型过程中产生的临近矩阵经过标准化后的坐标图,就是可以将高位图缩放到任意小的维度下来观看模型各个类别在不同维度下的分布情况
3.rfImpute():对数据中的缺失值进行插值
4.treesize():查看每一棵树所具有的节点个数
5.randomForest():随机森林中最核心的参数,用来建立随机森林模型,既可以建立判别模型,还可以建立回归模型和无监督模型。

接下来我利用kdd社区的案例:泰坦尼克生还分析,作了实践,将会抽时间整理出来发布,任何工具只要常用就不难,主要希望能够多增长思想方面的广度和深度。

你可能感兴趣的:(数据挖掘)