主要内容

TreeBagger类

描述

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

TreeBagger依靠分类树回归树生长单独的树的功能。特别是,分类树回归树接受为每个决策分割随机选择的特性数量作为可选输入参数。也就是说,TreeBagger实现了随机森林算法[1]

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

建设

TreeBagger 创建决策树包

对象的功能

附加 将新树附加到集合中
契约 决策树的紧集成
错误 误差(误分类概率或MSE)
fillprox 训练数据的邻近矩阵
种树 训练额外的树,并添加到整体
边缘 分类保证金
mdsprox 邻近矩阵的多维标度
平均边际 平均分类边际
oobError 出包错误
oobMargin 现成的利润
oobMeanMargin Out-of-bag意味着利润
OOB预测 出袋观测的集合预测
oobQuantileError 回归树袋外分位数损失
oobQuantilePredict 从回归树的袋外观察的分位数预测
partialDependence 计算部分相关性
局部依赖 创建部分依赖图(PDP)和个人条件期望图(ICE)
预测 利用套袋决策树集成预测响应
定量误差 使用回归树包的分位数损失
quantilePredict 预测响应分位数使用袋回归树

性质

一会

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

ComputeOOBPrediction

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

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

  • OOBIndices

  • OOBInstanceWeight

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

  • oobError

  • oobMargin

  • oobMeanMargin

ComputeOOBPredictorImportance

一个逻辑标志,指定是否应该计算变量重要性的包外估计。默认值是.如果此标志是真正的,然后ComputeOOBPrediction也是真的。

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

  • oobPermitedDeltaError

  • oobPermitedDeltameanMargin

  • oobPermutedPredictor CountraiseMargin

费用

方阵,在哪里成本(i, j)是将一个点分类为类的成本j如果它的真实类别是(即,行对应真正的类,列对应预测的类)。的行和列的顺序费用中类的顺序一会. 中的行数和列数费用是响应中唯一类的数目。

这个属性是:

  • 只读

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

DefaultYfit

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

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

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

DeltaCriterionDecisionSplit

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

内包分数

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

MergeLeaves

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

方法

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

MinLeafSize

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

裸树

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

NumPredictorSplit

大小为1 × -的数字数组Nvars,其中每个元素在所有树上求和的该预测器上给出若干个拆分。

NumPredictorsToSample

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

OOBIndices

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

OOBInstanceWeight

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

oobPermutedPredictor CountraiseMargin

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

oobPermitedDeltaError

大小为1 × -的数字数组Nvars包含每个预测变量(特征)的重要性度量。对于任何一个变量,如果该变量的值是在袋子外的观察值中排列的,则度量是预测误差的增加。对每棵树计算这个度量,然后在整个集合上取平均值,再除以整个集合上的标准差。

oobPermitedDeltameanMargin

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

离群值测度

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

先前的

每个类的先验概率的数字向量。元素的顺序先前的中类的顺序一会

这个属性是:

  • 只读

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

接近

有大小的数字矩阵诺布-借-诺布哪里诺布为训练数据中的观测数,包含观测值之间的接近度度量值。对于任意两个观测值,它们的接近度定义为这些观测值落在同一片叶子上的树木的比例。这是一个对称矩阵,对角线和非对角线上的元素从0到1都有1s。

修剪

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

替换样本

一个逻辑标志,指定是否对每个决策树的数据进行采样并进行替换。此属性为真正的如果TreeBagger样本数据替换和否则。默认值是真正的

树胶

的单元格数组参数fitctree菲特里这个se arguments are used byTreeBagger为整个团队种植新树。

大小相同的单元格数组裸树-by-1包含集合中的树。

SurrogateAssociation

大小矩阵Nvars-借-Nvars通过变量关联的预测措施,对整个成年树木进行平均。如果你增加了布景“代孕”“上”,每个树的此矩阵填充了代理项拆分上平均的关联预测度量。如果增加集合设置“代孕”“关”(违约),SurrogateAssociation是斜的。

预测器名称

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

W

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

X

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

Y

一个大小诺布响应数据数组Y对应于的行X.对于分类,Y是一组真正的类标签。标签可以是任意的分组变量,即数字或逻辑向量、字符矩阵、字符串数组、字符向量单元格数组或分类向量。TreeBagger将标签转换为字符向量的单元格数组以进行分类。对于回归,Y是一个数值向量。

例子

全部折叠

加载Fisher的虹膜数据集。

负载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},“模式”“图形”)

图分类树查看器包含一个轴对象和其他类型的uimenu, uicontrol对象。axis对象包含21个类型为line, text的对象。

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

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

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

图;oobErrorBaggedEnsemble = oobError (Mdl);情节(oobErrorBaggedEnsemble)包含“已长成的树的数量”;伊莱贝尔“行李外分类错误”

图中包含一个轴对象。axis对象包含一个类型为line的对象。

袋外误差随树木生长数量的增加而减小。

要标记出袋观察结果,请通过MdlOOB预测

加载卡斯莫尔考虑一个模型,它预测一辆汽车因其发动机排量而产生的燃油经济性。

负载卡斯莫尔

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

rng(1);%为了再现性Mdl=TreeBagger(100,位移,MPG,“方法”“回归”);

Mdl是一个TreeBagger表演团体

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

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

predX=linspace(最小(位移),最大(位移),10’;mpgMean=predict(Mdl,predX);mpgQuartiles=quantilePredict(Mdl,predX,分位数的, 0.25, 0.5, 0.75);

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

图;情节(位移,英里/加仑,“哦”);持有在…上绘图(predX,mpgMean);绘图(predX,mpg4分位数);ylabel(的燃油经济性);包含(“发动机排量”);传奇(“数据”“平均响应”“第一个四分位数”“中值”“第三个四分位数”);

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

加载卡斯莫尔考虑一个模型,它预测汽车的平均燃油经济性,考虑到它的加速度、气缸数、发动机排量、马力、制造商、模型年和重量。圆筒制造,车型年款作为分类变量。

负载卡斯莫尔气缸=分类(缸);及时通知=分类(cellstr (Mfg));Model_Year =分类(Model_Year);X =表(加速、气缸、排量、马力、制造行业,...Model_Year、重量、MPG);rng (“默认”);%为了再现性

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

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

因为只有三个类别圆筒车型年款,标准的CART预测器拆分算法更倾向于拆分连续预测器而不是这两个变量。

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

Mdl=TreeBagger(200,X,“英里”“方法”“回归”“代理”“上”...“PredictorSelection”“弯曲”“OOB预测重要性”“上”);

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

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

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

在这种情况下,,车型年款是最重要的预测因子,其次是重量

比较接口信息处理器预测从使用标准CART生长树木的随机森林计算的重要性估计。

MdlCART = TreeBagger (200 X,“英里”“方法”“回归”“代理”“上”...“OOB预测重要性”“上”);impCART=MdlCART.oobpermitedPredictor DeltaError;图;栏(impCART);标题(“标准车”); 伊拉贝尔(“预测重要性估计”);包含(“预测因素”);甘氨胆酸h =;h.XTickLabel = Mdl.PredictorNames;h.XTickLabelRotation = 45;h.TickLabelInterpreter =“没有”

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

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

复制语义

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

提示

暂时TreeBagger模型对象B,属性存储的单元格向量B.NumTreesCompactClassificationTree紧回归树模型对象。用于树的文本或图形显示t在单元向量中,输入

视图(B.Trees{t})

选择功能

Statistics and Machine Learning Toolbox™提供了三种对象用于套袋和随机森林:

详细了解两者的区别TreeBagger以及袋装套装(分类BaggedAssembleRegressionBaggedEnsemble),见套袋式和套袋式的比较

工具书类

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

[2] 分位数回归森林机器学习研究杂志,第7卷,2006年,第983-999页。