TreeBagger类

决策树包

描述

TreeBagger袋合奏决策树的任一分类或回归。套袋代表引导聚集。在合奏每一棵树生长在输入数据的独立绘制自举复制品。不包括在此副本意见是“包了”这棵树。

TreeBagger依靠ClassificationTreeRegressionTree功能用于种植树木个体。特别是,ClassificationTreeRegressionTree接受为每个决策拆分随机选择的特性数作为可选输入参数。也就是说,TreeBagger实现随机森林算法[1]

对于回归问题,TreeBagger万博1manbetx支持均值和分位数回归(即分位数回归森林)[2])。

  • 为了预测平均响应或估计给定数据的平均平方误差,传递aTreeBagger模型和数据预测要么错误,分别。若要对包外观察执行类似的操作,请使用oobPredict要么oobError

  • 估计响应分布或给定的数据的位数误差的位数,通过一个TreeBagger模型和数据quantilePredict要么quantileError,分别。若要对包外观察执行类似的操作,请使用oobQuantilePredict要么oobError

施工

TreeBagger 创建决策树包

方法

附加 添加新树到集合
紧凑的 决策树的紧凑型集合
错误 误差(错误分类概率或MSE)
fillprox 用于训练数据的接近矩阵
growTrees 训练额外的树木,增加整体效果
余量 分类保证金
mdsprox 接近矩阵的多维标度
meanMargin 意思是分类保证金
oobError Out-of-bag错误
oobMargin 出球袋利润率
oobMeanMargin Out-of-bag意味着利润
oobPredict 对于超出球袋观察集合预报
oobQuantileError 回归树的包外的包位数损失
oobQuantilePredict 从回归树的袋外观察的分位数预测
预测 预测使用袋装决策树的整体响应
quantileError 回归树的分位数的损失用袋
quantilePredict 预测响应位数使用回归树袋

属性

一会

包含类名的响应变量A单元阵列Y。此属性是空的回归树。

ComputeOOBPrediction

一个合乎逻辑的标志,指定是否超出袋预测的培训意见应计算。默认值是

如果该标志是真正中,具有以下属性:

  • OOBIndices

  • OOBInstanceWeight

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

  • oobError

  • oobMargin

  • oobMeanMargin

ComputeOOBPredictorImportance

一个逻辑标志,指定是否应该计算出具有可变重要性的out-of-bag估计值。默认值是。如果该标志是真正,然后ComputeOOBPrediction也是正确的。

如果该标志是真正中,具有以下属性:

  • OOBPermutedPredictorDeltaError

  • OOBPermutedPredictorDeltaMeanMargin

  • OOBPermutedPredictorCountRaiseMargin

成本

方阵,其中,成本(I,J)是分类的点到类的费用j如果它的真实类(即,行对应于真类和列对应于所预测的类)。行和列的顺序成本对应于类的顺序一会。行和列的数量成本是响应独特的类数。

这个属性是:

  • 只读

  • 空([])为回归树的合奏

DefaultYfit

默认值由返回预测oobPredict。的DefaultYfit属性控制在不可能进行预测时返回的预测值。例如,当oobPredict需要预测整个系统中所有树木的观测结果。

  • 对于分类,可以设置该属性要么要么“MostPopular”。如果你选择“MostPopular”(默认值),该属性值变为在训练数据最可能的类的名称。如果你选择中,在袋的观测被排除在外的包的错误和余量的计算。

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

DeltaCriterionDecisionSplit

大小为1×-的数字数组据nvar分裂准则的变化对每个变量的分裂进行求和,对所有已生长的树进行平均。

InBagFraction

被随机地置换为每个自举复制品选择观测部分。每个副本的大小是NOBS×InBagFraction,其中NOBS是训练集中观测次数。默认值是1。

MergeLeaves

指定是否决定树叶与同一母公司的逻辑标志被合并为不降低总风险分裂。默认值是

方法

方法使用的树木。可能的值是'分类'用于分类系统,和“回归”回归合奏。

MinLeafSize

每片树叶的最少观察次数。默认情况下,MinLeafSize是1用于分类和5回归。对于决策树训练中,MinParentvalue被设置为2 * MinLeafSize

NumTrees

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

NumPredictorSplit

大小为1×-的数字数组据nvar,其中的每个单元提供了有关这一预测求和所有的树木分割数。

NumPredictorsToSample

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

OOBIndices

大小的逻辑阵列NOBS——- - - - - -NumTrees,其中NOBS在训练数据中观察到的次数和NumTrees是在合奏的树木数量。一个真正该值(,j元素表示该观测值“out-of-bag”是“out-of-bag”的意思吗j。换句话说,观察没有入选用来种植树木的训练数据j

OOBInstanceWeight

大小数字数组NOBS×1包含用于计算外的包的响应对于每个观测树的数量。NOBS是用于创建集成的训练数据中的观察值。

OOBPermutedPredictorCountRaiseMargin

大小为1×-的数字数组据nvar含有的可变重要性的度量为每个预测器变量(特征)。对于任何变量,该措施是凸起边缘的数目,并且如果该变量的值被跨越外的袋的观察置换降低边缘的数量之间的差。对每棵树都计算这个值,然后对整个集合求平均值,再除以整个集合的标准差。此属性是空的回归树。

OOBPermutedPredictorDeltaError

大小为1×-的数字数组据nvar包含每个预测变量(特征)的重要性度量。对于任何变量,其度量是,如果变量的值在out-of-bag观察值之间进行排列,则预测误差的增加。对每棵树都计算这个值,然后对整个集合求平均值,再除以整个集合的标准差。

OOBPermutedPredictorDeltaMeanMargin

大小为1×-的数字数组据nvar包含每个预测变量(特征)的重要性度量。对于任何变量,该措施是,如果该变量的值被跨越外的袋的观察置换在分类余量的降低。对每棵树都计算这个值,然后对整个集合求平均值,再除以整个集合的标准差。此属性是空的回归树。

OutlierMeasure

大小的数字数组NOBS-by-1,其中NOBS是在训练数据的观察,包含用于每个观测离群值措施的数量。

每个类的先验概率的数字向量。元素的顺序对应于类的顺序一会

这个属性是:

  • 只读

  • 空([])为回归树的合奏

接近

大小的数字矩阵NOBS——- - - - - -NOBS,其中NOBS是训练数据中的观测值,包含观测值之间的接近度度量。对于任何两个观测值,它们的接近度被定义为这些观测值落在同一片叶子上的树的比例。这是一个对称矩阵,对角线和非对角线上的元素都是1,范围从0到1。

修剪

修剪如果决策树修剪假,如果他们不属性为true。修剪决策树,不建议合奏。默认值是假的。

SampleWithReplacement

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

TreeArguments

为参数单元阵列fitctree要么fitrtree。这些参数被TreeBagger当种植新的树木为整体。

大小的单元格数组NumTrees-1乘1,包含整个集合中的树。

SurrogateAssociation

矩阵的大小据nvar——- - - - - -据nvar通过变量关联的预测方法,对所有已生长的树进行平均。如果增加整体的设置“代孕”“上”,每棵树的这个矩阵都填满了在代理拆分上的平均关联的预测度量。如果增加整体的设置“代孕”“关闭”(默认),SurrogateAssociation是斜的。

PredictorNames

包含预测变量(特征)的名称的单元阵列。TreeBagger从可选需要这些名字“名字”参数。默认名称是'X1','X2'等等。

W

长度权值的数字向量NOBS,其中NOBS是观测(行)在训练数据的数量。TreeBagger使用这些权重的整体成长的每一个决定树。默认W(脑袋,1)

X

一种有大小的表格或数字矩阵NOBS——- - - - - -据nvar,其中NOBS是观测(行)的数目和据nvar是变量(列)在训练数据的数量。如果您使用的预测值表训练合奏然后,X是一个表。如果您使用的预测值的矩阵训练合奏然后,X是一个矩阵。此属性包含预测器(或特性)值。

Y

一个大小NOBS阵列响应数据。要点Y对应于各行X。的分类,Y是真类标签的集合。标签可以是任何分组变量,即一个数字或逻辑向量、字符矩阵、字符串数组、字符向量的单元数组或分类向量。TreeBagger将标签转换为字符向量的单元数组以进行分类。对于回归,Y是一个数值向量。

例子

全部收缩

加载Fisher的iris数据集。

负载fisheriris

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

rng (1);%的再现性MDL = TreeBagger(50,MEAS,物种,'OOBPrediction',“上”,...'方法','分类')
MDL = TreeBagger合奏用50个袋装决策树:培训X:[150x4]培训Y:[150x1]方法:分类NumPredictors:4个NumPredictorsToSample:2 MinLeafSize:1个InBagFraction:1 SampleWithReplacement:1个ComputeOOBPrediction:1个ComputeOOBPredictorImportance:0接近:[]类名:“setosa'菌“弗吉尼亚”的属性,方法

MDLTreeBagger合奏。

Mdl.Trees存储经过训练的分类树的一个50×1的细胞向量(CompactClassificationTree组成整体的模型对象。

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

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

默认情况下,TreeBagger长深树。

Mdl.OOBIndices商店外的包的索引作为逻辑值的矩阵。

绘制出球袋误差超过成年分类树的数量。

图;oobErrorBaggedEnsemble = oobError(MDL);图(oobErrorBaggedEnsemble)xlabel“已生长的树木数目”;ylabel“乱袋分类错误”;

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

要标记出袋外的观察,请通过MDLoobPredict

加载carsmall数据集:考虑一个模型,该模型根据发动机的排水量来预测汽车的燃油经济性。

负载carsmall

列车采用整个数据集袋装回归树的集合。指定100个弱学习。

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

MDLTreeBagger合奏。

使用回归树的训练的包,你可以估算条件均值回复或执行分位数回归预测有条件的分位数。

对于样本的位移最小值和最大值之间10个相等间隔的发动机的位移,预测条件均值反应和条件的四分位数。

predX = linspace(分钟(位移),最大值(位移),10)';mpgMean =预测(MDL,predX);mpgQuartiles = quantilePredict(MDL,predX,分位数的,0.25,0.5,0.75);

画出观察,估计平均响应和四分位数的数字相同。

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

加载carsmall数据集:考虑一个模型,该模型根据汽车的加速度、气缸数、发动机排量、马力、制造商、车型年份和重量来预测汽车的平均燃油经济性。考虑气瓶,MFGModel_Year作为分类变量。

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

显示在分类变量表示类别的数量。

numCylinders = numel(类别(缸))
numCylinders = 3
numMfg = numel(类别(MFG))
numMfg = 28
numModelYear = numel(类别(Model_Year))
numModelYear = 3

因为有3个类别只在气瓶Model_Year在标准CART中,预测器分离算法更倾向于将连续预测器拆分为两个变量。

列车使用整个数据集,200个回归树的随机森林。种植树木不偏不倚,指定拆分预测曲率测试的使用。因为有数据缺失值,指定替代拆分的使用。存放了球袋的信息预测的重要性估计。

Mdl = TreeBagger (200 X,“英里”,'方法',“回归”,“代孕”,“上”,...'PredictorSelection',“弯曲”,“OOBPredictorImportance”,“上”);

TreeBagger卖场预测因素属性重要性的估计OOBPermutedPredictorDeltaError。比较用柱状图的估计。

小鬼= Mdl.OOBPermutedPredictorDeltaError;图;栏(IMP);标题(“曲率测试”);ylabel(“预测的重要性估计”);包含(“预测器”);H = GCA;h.XTickLabel = Mdl.PredictorNames;h.XTickLabelRotation = 45;h.TickLabelInterpreter =“没有”;

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

比较小鬼从使用标准CART种植树木的随机森林中计算出的预测重要性估计。

MdlCART = TreeBagger (200 X,“英里”,'方法',“回归”,“代孕”,“上”,...“OOBPredictorImportance”,“上”);impCART = MdlCART.OOBPermutedPredictorDeltaError;图;巴(impCART);标题(“标准车”);ylabel(“预测的重要性估计”);包含(“预测器”);H = GCA;h.XTickLabel = Mdl.PredictorNames;h.XTickLabelRotation = 45;h.TickLabelInterpreter =“没有”;

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

复制语义

值。要了解如何影响你的类的使用,见比较手柄和值类(MATLAB)在MATLAB®面向对象编程的文档。

提示

为一个TreeBagger模型对象B,属性存储的单元格向量B.NumTreesCompactClassificationTree要么CompactRegressionTree模型对象。对于树的文本或图形显示t在cell vector中,输入

视图(B.Trees {t})

另类功能

统计和机器学习工具箱™提供了三种对象装袋和随机森林:

之间的差异TreeBagger和袋装合奏(ClassificationBaggedEnsembleRegressionBaggedEnsemble),看TreeBagger和Bagged集成包的比较

参考文献

[1]Breiman, L。随机森林。机器学习45,页5-32,2001。

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