随机森林

一、算法理念:三个臭皮匠胜过一个诸葛亮

随机森林顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。

在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。

二、实现过程:随机采样+完全分裂+投票分类

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

②如果有M个输入变量,每个节点都将随机选择m(m<M)个向量;

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

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


随机森林实现过程


三、实现方法:R 

创建分类器

m <- randomForest ( train, ntree = 500, mtry =sqrt(p), nPerm,importance=TRUE)

train 是包含训练数据集的数据框

ntree 是一个整数,制定树的数目

mtry 是一个可选的整数,代表每次划分中随机选择的变量的数目,默认是sqrt(p),p是数据中的总变量数

nPerm 表示计算importance时的重复次数,数值大于1给出了比较稳定的估计

importance 表示输出分裂属性的重要性

Tm]�,

进行预测:

p<- predict (m, test, type = "response”)

m 是randomForest函数训练的模型

test 是包含测试集的数据框,与训练集数据的结构相同

type 可以是"response"、"prob”、“votes"中的一个,分别表示输出的预测向量是预测类别、预测概率或者投票数的矩阵。



四、案例分析——ATM选址

1)定义

因变量Y:ATM连续12个月的交易笔数平均值,日均交易量大于等于70笔则定义为1

自变量X:ATM地址周边300m的GIS信息,并根据实际含义分为19种类别

研究目标:找出对交易笔数影响较大的一组变量,从而预测交易笔数较高的布点地址

数据来源: ATM交易笔数+高德地图的GIS数据

2)R代码说明:

①将数据行变量进行随机性抽样,70%作为训练样本,30%作为验证样本

②建立500棵树的随机森林模型

③规定输出变量,变量重要性,训练模型,验证模型

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.随机森林使用背景 1.1随机森林定义 随机森林是一种比较新的机器学习模型。经典的机器学习模型是神经网络,有半个...
    山的那边是什么_阅读 27,940评论 0 28
  • 作者:Poll的笔记博客:http://www.cnblogs.com/maybe2030/p/4585705.h...
    JSong1122阅读 11,324评论 1 74
  • 有监督学习基于一组包含预测变量和输出变量的样本单元。将全部数据分为一个训练数据集和一个验证数据集,其中训练集用于建...
    王诗翔阅读 9,757评论 0 16
  • 1、什么是随机森林? 随机森林就是用随机的方式建立一个森林,在森林里有很多决策树组成,并且每一棵决策树之间是没有关...
    arrnos阅读 10,350评论 0 4
  • 1、什么是随机森林?随机森林就是用随机的方式建立一个森林,在森林里有很多决策树组成,并且每一棵决策树之间是没有关联...
    快乐的小飞熊阅读 14,267评论 1 11