Matlab随机森林帮助系统
TreeBagger class
目 录
1. 描述(Description).............................................................................. 1 2. 创建(Construction)............................................................................ 1 3. 方法(Methods) ...................................................................................... 1 4. 属性(Properties) ................................................................................ 2 5. 举例(Examples) .................................................................................... 4 6. 复制语义(Copy Semantics) ............................................................... 9 7. 提示(Tips)............................................................................................. 9 8. 替代功能(Alternative Functionality) ...................................... 10 9. 文献(References) .............................................................................. 10 See Also.......................................................................................................... 10 Topics .............................................................................................................. 10
1. 描述(Description)
TreeBagger是将多个分类或回归的决策树集成为一个分类或回归集成器. 引导聚合法(Bagging)表示自助聚合方法. 集成器中的每棵树都生长在输入数据的独立绘制的自助(bootstrap1)副本上. 没被该副本包含的观测值称为这棵树的袋外数据.
TreeBagger依赖于分类树和回归树的功能来生长单个树. 特别地, 分类树和回归树接受为每个决策拆分随机选择的特征数作为可选输入参数. 亦即, TreeBagger 实现的是随机森林算法[1].
对回归问题, TreeBagger 支持均值和分位数回归(即分位数回归森林[2]). ? 要预测平均响应或估计给定数据的均方误差,将TreeBagger模型和数据分别传递
给命令predict和命令error. 要对袋外观测值执行类似操作,请分别使用命令oobpredect和命令oobError.
?
要估计响应分布的分位数或给定数据的分位数误差, 将TreeBagger模型和数据分别传递给命令quantilePredict和命令quantileError. 要对袋外观测值执行类似操作,请分别使用命令oobQuantilePredict和命令oobError.
2. 创建(Construction)
TreeBagger创建一个随机森林
3. 方法(Methods)
append将新树按序添加到集成器
compacterror决策树的紧致集成
误差(误分类概率或均方差)
fillprox训练数据的邻近矩阵
growTreesmargin训练额外的树并添加到集成器 分类边距
mdsprox
邻近矩阵的多维标度
meanMarginoobError
平均分类边距 袋外误差
oobMargin袋外边距
1
Bootstrap是一种选取训练集的方法——从样本数据中重采样若干子样本。
1
oobMeanMargin
袋外平均边距
袋外观测值的集成预测
oobPredictoobQuantileError回归森林的袋外分位数损失
oobQuantilePredictpredict回归森林对袋外观测值的分位数预测 应用随机森林来预测响应
quantileError
应用随机森林来计算分位数损失
quantilePredict应用随机森林预测响应分位数
4. 属性(Properties)
ClassNames
ComputeOOBPrediction
ComputeOOBPredictorImportance
包含响应变量Y的类名的元胞数组. 对于回归树,此属性为空. 一种逻辑标志,指定是否计算训练数据的袋外预测. 缺省值为false. 若此标志为true, 则下述属性可用: OOBIndices OOBInstanceWeight
若此标志为true, 则下述方法可被调用: oobError oobMargin oobMeanMargin
一种逻辑标志,指定是否计算变量重要性的袋外估计. 缺省值为false.若此标志为true,则ComputeOOBPrediction也是true. 若此标志为true,则下述属性可用:
Cost
OOBPermutedPredictorDeltaError OOBPermutedPredictorDeltaMeanMargin OOBPermutedPredictorCountRaiseMargin
一个方阵,其中Cost(i,j)是将一个点分到类j而实际上它属于类i的代价(换言之,该矩阵的行对应的是真类而列则对应的是预测的类). Cost的行和列的顺序与ClassNames中类的顺序相对应. Cost中的行数和列数是响应中唯一类的数目. 这个属性是:
read-only
empty ([]) for ensembles of regression trees
DefaultYfit
predict和oobPredict返回的缺省值. DefaultYfit属性控制着在无法预测时返回的预测值. 比如,当oobPredict需要预测集成器中所有树的观测值时.
对于分类,你可将此属性设置为''或'MostPopular'. 若选择'MostPopular'(缺省值),则此属性值成为训练数据中最有可能的类的名称. 若选择'',则袋内观测值将不包括在袋外误差和边距的计算中. 对于回归,你可将此属性设置为任何数值标量. 缺省值是训练数据响应的平均值. 若设置为NaN, 则袋内观测值将不包括在袋外误差和边距的计算中.
2
DeltaCriterionDecisionSplit InBagFraction
一个1×Nvars数值矩阵,它是对每个变量的拆分进行求和,并在整个生长树集合中求平均值.
随机选择并替换每个引导副本的观测值的占比. 每个副本的大小是Nobs×InBagFraction,其中Nobs是训练集中观测值的数量. 缺省值为1.
注:实际上就是训练集数据量占总数据量的比例.
MergeLeaves 一种逻辑标志,指定是否合并具有相同父级的决策树叶以进行不降低总风险的拆分. 缺省值为false.
Method MinLeafSize
决策树所使用的方法. 分类集成器的值可能是'classification',回归集成器的值则是'regression'.
每片树叶的观测值的最小数据量. 缺省情况下,MinLeafSize的值对分类为1,对回归为5. 在训练决策树时,MinParent的值设置为2*MinLeafSize.
NumTrees NumPredictorSplit NumPredictorsToSample
一个标量值,等于集成器中决策树的数量.
一个1×Nvars数值矩阵,其中每个元素给出的是此预测器上所有树的分裂数的和.
为每个决策拆分随机选择的预测变量或特征变量的数目. 缺省情况下,NumPredictorsToSample等于分类变量总数的平方根,回归变量总数的1/3.
OOBIndices
Nobs×NumTrees逻辑矩阵,其中Nobs是训练数据中观测值的数量,NumTrees是集成器中树的数量. (i,j)元素为true意指观测值i是树j的袋外数据. 换言之,观测值i没被选为生长树j的训练数据.
OOBInstanceWeight
Nobs×1数值矩阵,包含用于计算每个观测的袋外响应的树的数量. Nobs是用于创建集成器的训练集中观测值的数量.
OOBPermutedPredictorCountRaiseMargin
1×Nvars数值矩阵,包含了每个预测变量(特征)的重要性度量. 对于任何变量,如果该变量的值在袋外观测值之间进行置换,则度量值是提高的边距数和降低的边距数之间的差. 对每棵树都计算这个测度,然后在整个集成器上取平均值,除以整个集成器上的标准差. 对于回归树,此属性为空.
OOBPermutedPredictorDeltaError
1×Nvars数值矩阵,包含了每个预测变量(特征)的重要性度量. 对于任何变量,如果该变量的值在袋外观测值之间进行置换,则测量值是预测误差的增加. 对每棵树都计算这个测度,然后在整个集成器上取平均值,除以整个集成器上的标准差.
OOBPermutedPredictorDeltaMeanMargin
1×Nvars 数值矩阵,包含了每个预测变量(特征)的重要性度量. 对于任何变量,如果该变量的值在袋外观测值之间进行置换,则测量值是分类边距的减少. 对每棵树都计算这个测度,然后在整个集成器上取平均值,除以整个集成器上的标准差. 对于回归树,此属性为空.
OutlierMeasure
Nobs×1数值矩阵,其中Nobs是训练数据中观测值的数量,包含对每个观测值中异常值的度量.
3
Prior 每个类的先验概率的数值向量. Prior元素的顺序与ClassNames中类的顺序相对应. 这个属性是:
read-only
empty ([]) for ensembles of regression trees
Proximity
Nobs×Nobs数值矩阵,其中Nobs是训练数据中观测值的数量,包含了观测值之间接近度的度量. 对于任何两个观测值,其接近度定义为这些观测值落在同一叶上的树的占比. 这是一个对称矩阵,对角元素上元素为1,非对角元素介于0与1之间.
Prune 若决策树被修剪,则属性Prune的值为true,否则为false. 不建议对集成器中的决策树进行修剪. 缺省值为false.
SampleWithReplacement 一种逻辑标志,指定是否对每个决策树的数据进行采样并替换. 此属性当TreeBagger带替换地采样数据时值为true,否则值为false. 缺省值为true.
TreeArguments Trees
SurrogateAssociation
fitctree 或 fitrtree的参数元胞数组. 这些参数被TreeBagger应用于为集成器生长新树.
NumTrees×1元胞数组,包含了集成器中的所有树.
一个Nvars×Nvars矩阵,给出的是变量关联性的预测测度,在整个生长树集合中取平均值. 若将'surrogate'属性设置为'on'来生长集成器,则每个树的这个矩阵将填充为替代分裂上的平均关联预测度量. 若设置为'off'(缺省值),则SurrogateAssociation是对角阵.
PredictorNames W
一个包含了预测变量(特征)名的元胞数组. TreeBagger从可选参数'names'来提取这些名字. 缺省名为'x1','x2',等等.
长度为Nobs的权重向量,其中Nobs是训练数据中观测值的数量(行数). TreeBagger利用这些权重来生长集成器中的每棵决策树. W的缺省值是ones(Nobs,1).
X
Nobs×Nvars的表或数值矩阵,其中Nobs是观测值的数量(行数),Nvars是训练数据中变量的数量(列数). 若用预测值表来训练集成器,则X就是一张表. 若用预测值矩阵来训练集成器,则X就是一个矩阵. 此属性包含了预测变量(或特征)的值.
Y 一个大小为Nobs的响应数据矩阵. Y的元素对应着X的行. 对于分类,Y是真类的标签的集合. 标签可以是任何分组变量,即数值或逻辑向量、字符矩阵、字符串数组、以字符向量为元素的元胞数组、或分类向量. 对分类TreeBagger将标签转换为以字符向量为元素的元胞数组;对回归,Y是数值向量.
5. 举例(Examples)
5.1 训练分类集成器(Train Ensemble of Bagged Classification Trees)
加载Fisher's iris数据集.
4
相关推荐: