随机森林算法介绍及R 语言实现随机森林算法介绍算法介绍:简单的说,随机森林就是用随机的方式建立一个森林,森林里面有很多的决策树,并且每棵树之间是没有关联的。得到一个森林后, 当有一个新的样本输入, 森林中的每一棵决策树会分别进行一下判断,进行类别归类(针对分类算法),最后比较一下被判定哪一类最多,就预测该样本为哪一类。随机森林算法有两个主要环节:决策树的生长和投票过程。决策树生长步骤:1. 从容量为 N 的原始训练样本数据中采取放回抽样方式(即 bootstrap 取样)随机抽取自助样本集,重复k(树的数目为 k)次形成一个新的训练集N,以此生成一棵分类树;2. 每个自助样本集生长为单棵分类树, 该自助样本集是单棵分类树的全部训练数据。设有 M 个输入特征,则在树的每个节点处从M 个特征中随机挑选 m(m < M)个特征,按照节点不纯度最小的原则从这m 个特征中选出一个特征进行分枝生长,然后再分别递归调用上述过程构造各个分枝,直到这棵树能准确地分类训练集或所有属性都已被使用过。在整个森林的生长过程中 m 将保持恒定;3. 分类树为了达到低偏差和高差异而要充分生长,使每个节点的不纯度达到最小,不进行通常的剪枝操作。投票过程:随机森林采用 Bagging 方法生成多个决策树分类器。基本思想:1. 给定一个弱学习算法和一个训练集,单个弱学习算法准确率不高, 可以视为一个窄领域专家;2. 将该学习算法使用多次, 得出预测函数序列, 进行投票, 将多个窄领域专家评估结果汇总,最后结果准确率将大幅提升。随机森林的优点:?可以处理大量的输入变量; ?对于很多种资料,可以产生高准确度的分类器; ?可以在决定类别时,评估变量的重要性; ?在建造森林时,可以在内部对于一般化后的误差产生不偏差的估计; ?包含一个好方法可以估计遗失的资料,并且,如果有很大一部分的资料遗失,仍可以维持准确度 ; ?提供一个实验方法,可以去侦测variable interactions; ?对于不平衡的分类资料集来说,可以平衡误差; ?计算各例中的亲近度,对于数据挖掘、侦测偏离者(outlier )和将资料视觉化非常有用 ; ?使用上述。 可被延伸应用在未标记的资料上,这类资料通常是使用非监督式聚类。也可侦测偏离者和观看资料; ?学习过程很快速。缺点?随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合; ?对于有不同级别的属性的数据, 级别划分较多的属性会对随机森林产生更大的影响,所以随...