主要内容

TreeBagger类

描述

treebagger将决策树集合用于分类或回归。Bagging代表引导聚合。集合中的每棵树都是在输入数据的独立绘制的引导副本上生长的。不包括在这个副本中的观察结果对于这个树来说是“out of bag”。

treebagger依靠ClassificationTreeRegressionTree生长单独的树的功能。特别是,ClassificationTreeRegressionTree接受随机选择的功能的数量,每个决定拆分为可选的输入参数。那是,treebagger实现随机森林算法[1]

对于回归问题,treebagger金宝app支持均值和分位数回归(即分位数回归森林)[2]).

建设

treebagger 创造决策树

对象功能

附加 添加新树到集合
紧凑的 决策树的紧集成
错误 误差(误分类概率或MSE)
fillprox 训练数据的接近矩阵
growTrees 培训额外的树木并添加到Ensemble
边缘 分类保证金
mdsprox. 邻近矩阵的多维标度
meanMargin 意思是分类保证金
oobError Out-of-bag错误
oobMargin 现成的利润
Oobmeanmargin. 袋子外平均值边缘
OOB预测 出袋观测的集合预测
oobQuantileError 回归树袋外分位数损失
oobQuantilePredict 分位式预测来自袋子回归树的袋子观测
partialDependence 计算部分相关性
plotPartialDependence 创建部分依赖绘图(PDP)和个人有条件期望(ICE)绘图
预测 利用套袋决策树集成预测响应
quantileError 使用回归树包的分位数损失
stanilepredict. 预测响应分位数使用袋回归树

性质

Classnames.

包含响应变量的类名的单元格数组y。对于回归树,此属性为空。

computeoobprediction.

一个逻辑标志,指定是否应该计算训练观察的包外预测。默认为错误的

如果这个标志是真正的,以下属性可用:

  • oobindices.

  • oobinstance uight.

如果这个标志是真正的,可以调用以下方法:

  • oobError

  • oobMargin

  • Oobmeanmargin.

ComputeOOBPredictorImportance

应计算指定是否应计算可变重要性外包估计的逻辑标志。默认为错误的.如果这个标志是真正的, 然后computeoobprediction.也是如此。

如果这个标志是真正的,以下属性可用:

  • OOBPermutedPredictorDeltaError

  • oobPermitedDeltameanMargin

  • oobPermutedPredictor CountraiseMargin

成本

方阵,在哪里成本(i, j)是将一个点分类为类的成本j如果它真正的阶级是一世(即,行对应真正的类,列对应预测的类)。的行和列的顺序成本中类的顺序Classnames..中的行数和列数成本是响应中唯一类的数量。

这个属性是:

  • 只读

  • 空([])用于回归树的集合

DefaultYfit

返回的默认值预测OOB预测.这DefaultYfit属性控制在无法进行预测时返回的预测值。例如,当OOB预测需要对所有树木的观测结果进行预测。

  • 对于“分类”,可以将此属性设置为''“MostPopular”.如果你选择“MostPopular”(默认值),属性值将成为训练数据中最可能的类的名称。如果你选择''时,袋内观测数据被排除在袋外误差和余量的计算之外。

  • 对于回归,可以将此属性设置为任何数值标量。默认值是训练数据响应的平均值。如果将此属性设置为时,袋内观测数据被排除在袋外误差和余量的计算之外。

DeltaCriterionDecisionSplit

大小的数字数组1-by-据nvar将分割标准的变化通过每个变量的分割进行求和,并在整个已长成的树木集合中取平均值。

内包分数

随机选择的观察结果的一部分,并替换每个引导副本。每个副本的大小为诺布×内包分数,在那里诺布为训练集中的观测数。默认值为1。

mergeleaves.

对于不降低总风险的拆分,是否合并具有相同父类的决策树叶子的逻辑标志。默认值为错误的

方法

树木使用的方法。可能的值是“分类”对于分类集合,和“回归”回归乐队。

MinLeafSize

每片树叶的最低观察次数。默认情况下,MinLeafSize分类为1,回归为5MinParentValue设置为2 * MinLeafSize

裸树

标量值等于集合中的决策树数。

numpredictorsplit

大小的数字数组1-by-据nvar,其中每个元素给出了这个预测器上所有树的分割数。

NumPredictorsToSample

为每个决策分割随机选择的预测值或特征变量的数量。默认情况下,NumPredictorsToSample等于分类的分类总数的平方根,以及回归的总变量总数的三分之一。

oobindices.

逻辑阵列大小诺布——- - - - - -裸树,在那里诺布是培训数据中的观察数量和裸树为集合中树的数量。一个真正的价值观(一世j元素表示观察一世是树的袋子j.换句话说,就是观察一世未为用于生长树的训练数据选择j

oobinstance uight.

数字大小数组诺布-by-1包含用于计算每次观测的袋外响应的树的数量。诺布为用于创建集合的训练数据中的观测数。

oobPermutedPredictor CountraiseMargin

大小的数字数组1-by-据nvar包含每个预测变量(特征)的变量重要性度量。对于任何变量,如果该变量的值在出袋观测值中排列,则测量值为升高的边距数和降低的边距数之间的差值。该测量值针对每棵树进行计算,然后对整个集合进行平均,并除以整个集合的标准偏差。这对于回归树,属性为空。

OOBPermutedPredictorDeltaError

大小的数字数组1-by-据nvar包含每个预测变量(特征)的重要性度量。对于任何变量,如果禁止袋外观察结果允许该变量的值,则测量值是预测误差的增加。对于每个树计算该措施,然后在整个集合上平均并除以整个集合的标准偏差。

oobPermitedDeltameanMargin

大小的数字数组1-by-据nvar包含每个预测变量(特征)的重要性度量。对于任何变量,如果该变量的值在袋外观测值中排列,则度量值为分类裕度的减少。该度量值针对每棵树计算,然后在整个集合上求平均值,并除以整个集合上的标准偏差。对于回归树,此属性为空。

OutlierMeasure

一个数字大小数组诺布-比1,在哪里诺布是训练数据中观察值的数量,包含每个观察值的异常值度量。

先前的

每个班级的先前概率的数字矢量。元素的顺序先前的中类的顺序Classnames.

这个属性是:

  • 只读

  • 空([])用于回归树的集合

接近

一个大小的数字矩阵诺布——- - - - - -诺布,在那里诺布是培训数据中的观察数,含有观察之间的接近度。对于任何两个观察,它们的接近被定义为这些观察结果在同一叶上的树木的一部分。这是一个对照矩阵,对角线和非对角线元件上的1S,范围为0到1。

修剪

修剪属性为true(如果已修剪决策树),则为false(如果未修剪)。不建议对集合修剪决策树。默认值为false。

替换样本

一个逻辑标志,指定是否对每个具有替换的决策树进行数据采样。此属性真正的如果treebagger使用更换和更换数据错误的除此以外。默认值为真正的

树胶

的单元格数组参数fitctree菲特里.这些参数被treebagger在为合奏种植新树时。

树木

细胞阵列的大小裸树-1包含集合中的树木。

Trustogateassociation.

大小的矩阵据nvar——- - - - - -据nvar具有可变关联的预测措施,平均在成长树的整个整体上。如果你长大了集合设置“代理”'在',每个树的这个矩阵都填充了代理分割上平均的关联预测度量。如果你长大了集合设置“代理”“关闭”(违约),Trustogateassociation.是对角线。

PredictorNames

包含预测变量(特性)名称的单元格数组。treebagger从可选参数中取这些名称'名字'参数。默认名称为“x1”“x2”等。

W.

长度权值的数值向量诺布,在那里诺布是训练数据中的观察数(行)。treebagger使用这些权重在集成中生长每棵决策树。默认的W.那些(nobs,1)

X

有大小的表格或数字矩阵诺布——- - - - - -据nvar,在那里诺布是观察数(行)和据nvar为训练数据中变量(列)的个数。如果你用一个预测值表来训练集合,那么X这是一张桌子。如果使用预测器值矩阵训练集合,则X是一个矩阵。此属性包含预测器(或特性)值。

y

尺寸诺布响应数据数组y对应于的行X.的分类,y是真正类标签的集合。标签可以是任意的分组变量,也就是说,数字或逻辑向量,字符矩阵,字符串阵列,字符向量或分类向量的单元格阵列。treebagger将标签转换为用于分类的字符向量的单元格数组。为了回归,y是一个数字向量。

例子

全部折叠

载入费雪的虹膜数据集。

加载fisheriris

使用整个数据集训练一组袋装分类树。指定50弱的学习者。存储每棵树的观察结果。

rng (1);%的再现性Mdl=树獭(50,meas,物种,“OOB预测”'在'...“方法”“分类”的)
Mdl = TreeBagger Ensemble with 50 bagged decision trees: Training X: [150x4] Training Y: [150x1] Method: classification NumPredictors: 4 NumPredictorsToSample: 2 MinLeafSize: 1 InBagFraction: 1 SampleWithReplacement: 1 ComputeOOBPrediction: 1 ComputeOOBPredictorImportance: 0 Proximity: [] ClassNames:'setosa' 'versicolor' 'virginica'属性,方法

Mdl是一个treebagger合奏。

Mdl.树存储经过训练的分类树的50 × 1细胞向量(CompactClassificationTree模型对象)构成合奏。

绘制第一个训练的分类树的图。

视图(Mdl.Trees{1},'模式'“图形”的)

Figure Classification Tree Viewer包含轴对象和类型UIMenu,UIControl的其他对象。轴对象包含21个类型的类型,文本。

默认情况下,treebagger深树生长。

Mdl。oobindices.将带外索引存储为逻辑值矩阵。

绘制已生长分类树数量的袋外误差。

图;oobErrorBaggedEnsemble = oobError (Mdl);情节(oobErrorBaggedEnsemble)包含'成长的树木数量';ylabel“行李外分类错误”

图中包含一个轴对象。轴对象包含类型线的对象。

袋外误差随着树木的生长而减小。

要给袋子外的观察做标记,请放过MdlOOB预测

加载卡斯莫尔数据集。考虑一个模型,它可以预测给定发动机排量的汽车的燃油经济性。

加载卡斯莫尔

使用整个数据集训练一组袋装回归树。指定100名弱学习者。

rng (1);%的再现性Mdl = TreeBagger(位移,100英里,“方法”“回归”);

Mdl是一个treebagger合奏。

使用训练过的回归树包,您可以估计条件均值响应或执行分位数回归来预测条件分位数。

对于最小和最大样本内位移之间的十个等间距发动机位移,预测条件平均响应和条件四分位数。

predX=linspace(最小(位移),最大(位移),10’;mpgMean=predict(Mdl,predX);mpgQuartiles=quantilePredict(Mdl,predX,'standile',[0.25,0.5,0.75]);

将观察结果、估计平均响应和四分位数绘制在同一个图中。

图;情节(位移,MPG,“o”);持有在…上情节(predX mpgMean);情节(predX mpgQuartiles);ylabel ('燃油经济');Xlabel(“发动机排量”);传奇(“数据”“平均响应”“第一个四分位数”'中位'“第三四分位数”);

图中包含一个轴对象。axes对象包含5个line类型的对象。这些对象表示数据、平均响应、第一个四分位数、中值、第三个四分位数。

加载卡斯莫尔数据集。考虑一个模型,它可以预测一辆汽车的平均燃油经济性,该模型给出了汽车的加速度、汽缸数、发动机排量、马力、制造商、车型年份和重量。考虑圆筒制造,Model_Year作为分类变量。

加载卡斯莫尔汽缸=分类(气缸);MFG =分类(CellStr(MFG));model_year =分类(model_year);X =表(加速,圆柱,位移,马力,MFG,...Model_Year、重量、MPG);rng (“默认”);%的再现性

显示类别变量中表示的类别数量。

numCylinders =元素个数(类别(气缸))
numCylinders = 3
numMfg =元素个数(类别(有限公司))
nummfg = 28.
numModelYear=numel(类别(车型年))
nummodelyear = 3.

因为只有三个类别圆筒Model_Year在标准CART中,预测器分割算法更喜欢分割连续预测器而不是这两个变量。

使用整个数据集训练一个包含200棵回归树的随机森林。要种植无偏的树,指定使用曲率测试的分裂预测器。由于数据中缺少值,请指定代理拆分的用法。存储包外信息用于预测因子的重要性估计。

Mdl = TreeBagger (200 X,'mpg'“方法”“回归”“代理”'在'...“PredictorSelection”'曲率'“OOBPredictorImportance”'在');

treebagger在属性中存储预测值重要性估计值OOBPermutedPredictorDeltaError.用条形图比较估计值。

imp=Mdl.oobPermitedPredictor三角形错误;数字;条形图(imp);标题(“曲率测试”); 伊拉贝尔(的预测估计的重要性);Xlabel(“预测因素”);甘氨胆酸h =;h.XTickLabel = Mdl.PredictorNames;h.XTickLabelRotation = 45;h.TickLabelInterpreter ='没有任何'

图中包含一个轴对象。标题为曲率测试的轴对象包含一个类型为bar的对象。

在这种情况下,,Model_Year是最重要的预测因子,其次是重量

比较小鬼用于预测从使用标准CART生长树木的随机森林中计算的重要性估计值。

mdlcart = treebagger(200,x,'mpg'“方法”“回归”“代理”'在'...“OOBPredictorImportance”'在');impCART=MdlCART.oobpermitedPredictor DeltaError;图;栏(impCART);标题(“标准车”); 伊拉贝尔(的预测估计的重要性);Xlabel(“预测因素”);甘氨胆酸h =;h.XTickLabel = Mdl.PredictorNames;h.XTickLabelRotation = 45;h.TickLabelInterpreter ='没有任何'

图中包含一个轴对象。标题为Standard CART的axis对象包含一个bar类型的对象。

在这种情况下,,重量这是最重要的。接下来两个最重要的预测因素是Model_Year紧随其后马力,这是一个连续的预测器。

复制语义

价值。要了解这如何影响您对类的使用,请参见比较句柄类和值类在MATLAB®面向对象的编程文档。

提示

暂时treebagger模型对象B., 这树木属性存储的单元格向量B.NumTreesCompactClassificationTree紧回归树模型对象。用于树的文本或图形显示T.在细胞载体中,输入

视图(B.Trees {t})

选择功能

统计和机器学习工具箱™为袋装和随机森林提供三个物体:

有关差异之间的详细信息treebagger以及袋装套装(分类BaggedAssembleRegressionBaggedEnsemble),看TreeBagger和Bagged Sensembles的比较

参考文献

[1] 布莱曼,L.“随机森林。”机器学习45,页5-32,2001。

[2] Meinshausen, N.“分位数回归森林”机床学习研究,卷。7,2006,第983-999页。