大数据产品经理的自用干活

随机森林

2017-02-25  本文已影响25人  queenieyin

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

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

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

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

①假设我们设定训练集中的样本个数为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棵树的随机森林模型

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

上一篇 下一篇

猜你喜欢

热点阅读