一、随机森林原理解释及其参数说明
首先,从给定的训练集通过多次随机的可重复的采样得到多个bootstrap数据集。接着,对每个bootstrap数据集构造一颗决策树,构造是通过迭代的将数据点分到左右两个子集中实现的,这个分割过程是一个搜索分割函数的参数空间以寻求最大信息增量意义下最佳参数的过程。然后,在每个叶节点处通过统计训练集中达到此叶节点的分类标签的直方图经验的估计此叶节点上的类分布。这样的迭代训练过程一直执行到用户设定的最大树深度(随机森林提出者Breman采用的是ntree=500)或者知道不能继续分割获取更大的信息增益为止,网上的代码中作者都是对树的最大深度设置了最大值。
二、函数、参数的中文解释
function model = classRF_train(X, Y, ntree, mtry, extra_options) %随机森林中模型的训练
X表示输入的数据矩阵
Y输出
Ntree 设置的树的数目
Mtry的默认值为:floor(sqrt(size(X,2)), 表示不超过矩阵X列数的二次开根值的整数。
extra_options 包含很多控制RF的项
extra_optioons.replace 取值为1或0,默认值为1,表示是否做变量替换
extra_options.classwt 表示预先知道的类,函数首先得到一个升序排列的标签然后给先前的类同样的排序。
extra_options.cutoff 只在分类器中使用的一个向量,长度等于类的数目。对类的观察值是取对cutoff投票占的最大比例的一个。
extra_options.strata 用于分层抽样
extra_options.sampsize 样本的长度
extra_options.nodesize