文档

TreeBagger

类:TreeBagger

创建决策树的袋子

个人决策树overfit。Bootstrap-aggregated (袋装)决策树结合的结果,许多决策树,这样可以减少过度拟合的影响,提高了泛化。TreeBagger增长的决策树整体使用引导数据的样本。同时,TreeBagger选择一个随机的子集预测在每个决策使用分裂的随机森林算法[1]

默认情况下,TreeBagger包分类树。袋回归树相反,指定“方法”,“回归”

对于回归问题,TreeBagger金宝app支持的意思,分位数回归(即分位数回归森林[5])。

语法

ResponseVarName Mdl = TreeBagger (NumTrees(资源)
Mdl = TreeBagger (NumTrees、资源描述、公式)
Mdl = TreeBagger (NumTrees台,Y)
B = TreeBagger (NumTrees, X, Y)
B = TreeBagger (NumTrees, X, Y,名称,值)

描述

Mdl= TreeBagger (NumTrees,资源描述,ResponseVarName)返回一个整体的NumTrees袋装分类树训练用表中的示例数据资源描述ResponseVarName响应变量的名称吗资源描述

Mdl= TreeBagger (NumTrees,资源描述,公式)返回一个袋装分类树合奏训练用表中的示例数据资源描述公式是一个解释性模型反应和预测变量的子集资源描述适合使用Mdl。指定公式使用威尔金森符号。有关更多信息,请参见威尔金森符号

Mdl= TreeBagger (NumTrees,资源描述,Y)返回一个使用预测变量的分类树表资源描述和类标签向量Y

Y是一个数组的响应数据。的元素Y对应的行资源描述。的分类,Y是真正的集合类标签。标签可以是任何分组变量,也就是说,一个数字或逻辑向量,字符矩阵,细胞特征向量的向量,或分类向量。TreeBagger将标签转换为单元阵列的特征向量。对于回归,Y是一个数值向量。增长回归树,您必须指定名称-值对“方法”,“回归”

B= TreeBagger (NumTrees,X,Y)创建一个乐团BNumTrees决策树预测反应Y作为预测的数值矩阵函数的训练数据,X。在每一行X代表了一种观察和每一列代表一个预测或特性。

B = TreeBagger (NumTrees, X, Y,名称,值)指定可选参数名称-值对:

“InBagFraction” 分数的输入数据样本从输入数据替换种植新树。默认值是1。
“成本”

方阵C,在那里C (i, j)是一个指向类分类的成本j如果它真正的类(即。,the rows correspond to the true class and the columns correspond to the predicted class). The order of the rows and columns of成本对应于类的顺序一会财产的训练TreeBagger模型B

另外,成本可以是一个结构年代有两个领域:

  • S.ClassNames作为一个类别变量包含组名,字符数组,或细胞特征向量的向量

  • S.ClassificationCosts包含成本矩阵C

默认值是C (i, j) = 1如果我~ = j,C (i, j) = 0如果我=我

如果成本高度倾斜,然后,在袋子样品,软件oversamples独特的观察从类,它有一个很大的处罚。对小样本大小,这可能会导致一个非常低的相对频率的out-of-bag观察类,有一个很大的处罚。因此,估计out-of-bag错误是高度可变的,可能难以解释。

“SampleWithReplacement” “上”与替换或样本“关闭”样品没有更换。如果你不回样品,你需要设置“InBagFraction”值小于1。默认是“上”
“OOBPrediction” “上”存储信息的观察是什么袋子的每棵树。可以使用此信息oobPrediction计算预测类每棵树的概率。默认是“关闭”
“OOBPredictorImportance” “上”存储out-of-bag功能重要性的估计。默认是“关闭”。指定“上”还设置了“OOBPrediction”价值“上”。如果你的目标分析预测的重要性,然后指定“PredictorSelection”、“弯曲”“PredictorSelection”、“interaction-curvature”。更多细节,请参阅fitctreefitrtree
“方法” 要么“分类”“回归”。回归需要一个数字Y
“NumPredictorsToSample” 随机变量选择的决定。默认的变量数量的平方根是分类和回归的变量数量的三分之一。有效的值“所有”或者一个正整数。但任何有效设置这个参数值“所有”调用Breiman随机森林算法[1]
“NumPrint” 培训的循环次数(种植树木)之后TreeBagger显示诊断消息显示培训进展。默认是没有诊断消息。
“MinLeafSize” 最小数量的观察/树叶。默认是1 5分类和回归。
“选项” 结构,指定选项控制计算当决策树的整体增长。一个选项要求计算决策树在多个引导复制使用多个处理器,如果并行计算工具箱™是可用的。两个选项指定要使用的随机数流在选择引导复制。您可以创建和调用这个论点statset。您可以检索和调用单个字段的值statget。适用的statset参数:
  • “UseParallel”——如果真正的如果一个parpool并行计算的工具箱是开放的,计算决策树画在单独boostrap并行复制。如果并行计算工具箱没有安装,或者一个parpool不是开放的,计算发生在串行模式。默认是,或者串行计算。

  • “UseSubstreams”——如果真正的选择每个引导复制使用一个单独的Substream随机数生成器(又名流)。这个选项只有可用RandStream支持Substream金宝apps的类型:“mlfg6331_64”“mrg32k3a”。默认是,不要使用不同Substream计算每个引导复制。

  • ——一个RandStream这样的对象的对象或单元阵列。如果你不指定,TreeBagger使用默认的河流或溪流。如果你选择指定,除了在使用一个对象

    • 你有一个开放的平行池

    • UseParallel真正的

    • UseSubstreams

    在这种情况下,使用一个单元阵列大小相同的平行池。

“之前”

每个类的先验概率。指定的:

  • 一个特征向量:

    • “经验”确定类类频率的概率Y。如果你通过观察权重,它们被用来计算类概率。这是默认的。

    • “统一”集所有类概率相等。

  • 一个向量(一个标量值为每个类)。元素的顺序之前对应于类的顺序一会财产的训练TreeBagger模型B

  • 一个结构年代两个字段:

    • S.ClassNames包含类名作为分类变量、字符数组,或细胞特征向量的向量

    • S.ClassProbs包含一个向量对应的概率

如果你设置的值权重之前,重整权重加起来的价值各自的班上先验概率。

如果之前是高度倾斜,那么,在袋子样品,软件oversamples独特的观察从类,它有一个很大的先验概率。对于较小的样本大小,这可能会导致一个非常低的相对频率的out-of-bag观察类,有一个很大的先验概率。因此,估计out-of-bag错误是高度可变的,可能难以解释。

“PredictorNames”

预测变量名称,指定为逗号分隔组成的“PredictorNames”和一个单元阵列独特的特征向量。的功能“PredictorNames”取决于你提供的训练数据的方式。

  • 如果你提供XY,那么你可以使用“PredictorNames”给的预测变量X的名字。

    • 名字的顺序PredictorNames必须对应的列顺序X。也就是说,PredictorNames {1}的名字是X (: 1),PredictorNames {2}的名字是X (:, 2),等等。同时,大小(X, 2)元素个数(PredictorNames)必须是相等的。

    • 默认情况下,PredictorNames是{x1, x2,…}

  • 如果你提供资源描述,那么你可以使用“PredictorNames”选择使用哪个预测变量在训练。也就是说,TreeBagger使用预测变量PredictorNames只在训练和响应。

    • PredictorNames必须是一个子集的Tbl.Properties.VariableNames,不能包括响应变量的名称。

    • 默认情况下,PredictorNames包含所有预测变量的名字。

    • 它良好的实践指定培训使用的预测因子之一“PredictorNames”公式只有。

“CategoricalPredictors”

分类预测列表,指定为逗号分隔组成的“CategoricalPredictors”和一个以下。

  • 一个数值向量和指数1p,在那里p列的数量吗X

  • 一个逻辑向量的长度p,一个真正的条目意味着相应的列X是一个分类变量。

  • 细胞特征向量的向量,数组中的每个元素是一个预测变量的名字。名称必须匹配条目PredictorNames值。

  • 一个字符矩阵,矩阵的每一行是一个预测变量的名称。名称必须匹配条目PredictorNames值。垫的名字与额外的空格字符矩阵的每一行有相同的长度。

  • “所有”,这意味着所有的预测都直言。

ChunkSize的

块大小,指定为逗号分隔组成的ChunkSize的和一个正整数。块大小指定数量的观察每个块的数据。默认值是50000年

    注意:此选项仅适用于使用TreeBagger在高大的数组。看到扩展功能为更多的信息。

除了上面的可选参数,TreeBagger接受这些可选fitctreefitrtree参数。

例子

全部展开

加载费雪的虹膜数据集。

负载fisheriris

火车一袋装分类树的整个数据集。指定使用50弱的学习者。存储袋的每棵树的观测。

rng (1);%的再现性Mdl = TreeBagger(50、量、物种,“OOBPrediction”,“上”,“方法”,“分类”)
Mdl = TreeBagger合奏与50袋装决策树:训练X: [150 x4)培训Y: [150 x1)方法:分类NumPredictors: 4 NumPredictorsToSample: 2 MinLeafSize: 1 InBagFraction: 1 SampleWithReplacement: 1 ComputeOOBPrediction: 1 ComputeOOBPredictorImportance: 0距离:[]一会:“setosa”“杂色的”“virginica”

Mdl是一个TreeBagger合奏。

Mdl.Trees商店50-by-1细胞向量训练分类树(CompactClassificationTree模型对象)组成。

画一个图的第一个训练有素的分类树。

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

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

Mdl.OOBIndices存储out-of-bag指数作为一个矩阵的逻辑值。

情节out-of-bag误差在分类树种植的数量。

图;oobErrorBaggedEnsemble = oobError (Mdl);情节(oobErrorBaggedEnsemble)包含种植树木的数量;ylabel“Out-of-bag分类错误”;

out-of-bag误差随种植树木的数量。

标签out-of-bag观察,通过MdloobPredict

加载carsmall数据集。考虑一个模型,预测汽车的燃油经济性给出它的发动机排量。

负载carsmall

火车一袋装回归树使用整个数据集。指定100弱的学习者。

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

Mdl是一个TreeBagger合奏。

使用一个训练有素的袋回归树,您可以估计条件均值反应或执行分位数回归预测条件分位数。

十条平行引擎位移之间的最小和最大样本内位移,预测条件意味着反应和有条件的四分位数。

predX = linspace (min(位移),max(位移),10)';predX mpgMean =预测(Mdl);mpgQuartiles = quantilePredict (Mdl predX,分位数的,0.25,0.5,0.75);

情节的观察,估计意思是反应和四分位数相同的数字。

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

加载carsmall数据集。考虑一个模型,预测的平均燃油经济性汽车由于其加速度,缸数,发动机排量,马力,制造商,模型,和体重。考虑气缸,制造行业,Model_Year作为分类变量。

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

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

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

因为只有在有三个类别气缸Model_Year标准车,predictor-splitting算法更喜欢将连续预测这两个变量。

200年训练随机森林回归树使用整个数据集。无偏树木生长,指定使用曲率检测分割预测。因为有数据缺失值,指定使用代理分裂。商店的out-of-bag信息预测评估的重要性。

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

TreeBagger商店预测重要性估计房地产OOBPermutedPredictorDeltaError。使用条形图比较估计。

小鬼= Mdl.OOBPermutedPredictorDeltaError;图;酒吧(imp);标题(“弯曲测试”);ylabel (的预测估计的重要性);包含(“预测”);甘氨胆酸h =;h。XTickLabel = Mdl.PredictorNames; h.XTickLabelRotation = 45; h.TickLabelInterpreter =“没有”;

在这种情况下,Model_Year是最重要的因素,其次是吗重量

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

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

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

提示

  • 避免大的估计误差方差out-of-bag通过设置一个更平衡的误分类代价矩阵或少倾斜先验概率向量。

  • 的属性B存储单元向量的B.NumTreesCompactClassificationTreeCompactRegressionTree模型对象。文本或图形显示的树t在细胞中向量,输入

    视图(B.Trees {t})

  • 标准车往往选择分裂预测包含许多不同的值,例如,连续变量,在那些包含几个不同的值,例如,分类变量[4]。考虑指定曲率或交互测试如果真如下列:

    • 如果有预测比其他预测的不同值相对较少,例如,如果预测数据集是异构的。

    • 如果一个分析预测重要的是你的目标。TreeBagger商店预测估计的重要性OOBPermutedPredictorDeltaError的属性Mdl

    在指标选择的更多信息,见PredictorSelection分类树或PredictorSelection回归树。

算法

  • TreeBagger生成在袋子样品采样过密类大误分类代价采样类小误分类代价。因此,out-of-bag样本较少的观察从类大误分类代价和更多的观察类小误分类代价。如果你训练一个分类合奏使用一个小的数据集和一个高度倾斜成本矩阵,然后out-of-bag观察每个类的数量可能非常低。因此,估计out-of-bag错误可能有很大的差异,可能是难以解释。同样的现象也发生类先验概率大。

  • 有关选择分割预测和节点划分算法越来越多决策树时,看到的算法分类树和算法回归树。

引用

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

[2]Breiman, L。,J. Friedman, R. Olshen, and C. Stone.分类和回归树。波卡拉顿,FL: CRC出版社,1984年。

[3]Loh, W.Y.“回归树与公正的变量选择和交互检测。”Statistica中央研究院12卷,2002年,页361 - 386。

施[4]Loh, W.Y.和屈服强度。“分裂选择分类树的方法。”Statistica中央研究院7卷,1997年,页815 - 840。

[5]Meinshausen, N。“分位数回归森林。”机器学习研究杂志》上7卷,2006年,页983 - 999。

扩展功能

介绍了R2009a

这个主题有帮助吗?