主要内容

OobpermutedPredictorimportance.

通过对回归树随机森林的包外预测器观察的排列来估计预测器的重要性

描述

例子

小鬼= oobPermutedPredictorImportance (MDL.的)返回的向量禁令外,预测值估算排列使用回归树的随机森林MDL.MDL.必须是A.回归释迦缩短模型对象。

例子

小鬼= oobPermutedPredictorImportance (MDL.名称,价值的)使用一个或多个指定的附加选项名称,价值对参数。例如,您可以使用并行计算来加快计算速度,或者指示在预测器重要性估计中使用哪些树。

输入参数

全部展开

回归树的随机森林,指定为回归释迦缩短模型对象由fitrensemble.

名称 - 值参数

指定可选的逗号分离对名称,价值参数。的名字是参数名称和价值是相应的价值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家

学习者用于预测因子重要性估计的指标,指定为逗号分隔对,由'学习者'和一个正整数的数字向量。值必须为最大值Mdl。NumTrained.什么时候OobpermutedPredictorimportance.估计预测的重要性,它包括学习者mdl.tromed(学习者的)只有,学习者是值的价值'学习者'

例子:“学习者”,[1:2:Mdl。NumTrained]

并行计算选项,指定为逗号分隔对组成“选项”和返回的结构阵列statset“选项”需要一个并行计算工具箱™许可证。

OobpermutedPredictorimportance.使用'使用指惯'仅限字段。statset (UseParallel,真的)调用一个工作池。

例子:“选项”,statset (UseParallel,真的)

输出参数

全部展开

out -bag,通过排列估计预测器的重要性,返回为1-by-P.数字矢量。P.为训练数据中预测变量的个数(大小(Mdl.X, 2))。Imp (j的)预测器是否重要mdl.predictornames(j的)

例子

全部展开

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

加载carsmall汽缸=分类(气缸);MFG =分类(CellStr(MFG));model_year =分类(model_year);X =表(加速,圆柱,位移,马力,MFG,...Model_Year、重量、MPG);

您可以使用整个数据集训练一个由500棵回归树组成的随机森林。

mdl = fitrensemble(x,'mpg'“方法”“包”“NumLearningCycles”, 500);

fitrensemble.使用默认的模板树对象templateTree ()作为一个弱的学习者“方法”“包”.在本例中,为了再现性,请指定“重现”,真的当你创建一个树模板对象,然后使用对象作为弱学习器。

rng (“默认”的)%的再现性t = templatetree(“复制”,真正的);随机预测器选择的再生率的百分比mdl = fitrensemble(x,'mpg'“方法”“包”“NumLearningCycles”, 500,'学习者',t);

MDL.是一个回归释迦缩短模型。

通过排列出包外的观察来估计预测器的重要性。用条形图比较估计值。

Imp = OobperMutedPredictorimportance(MDL);数字;酒吧(IMP);标题(“out - bag perised Predictor Importance Estimates”);ylabel ('估计');Xlabel(“预测”);H = GCA;h.xticklabel = mdl.predictornames;H.xticklabelrotation = 45;H.TicklabelInterpreter =.'没有任何';

图中包含一个轴对象。标题为“out - bag perconfigured Predictor Importance Estimates”的axes对象包含一个类型为bar的对象。

小鬼是预测器重要性估计的1 × 7向量。较大的值表示对预测有较大影响的预测器。在这种情况下,重量最重要的预测因素是什么Model_Year

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

加载carsmall汽缸=分类(气缸);MFG =分类(CellStr(MFG));model_year =分类(model_year);X =表(加速,圆柱,位移,马力,MFG,...Model_Year、重量、MPG);

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

num cinders = numel(类别(圆筒))
numCylinders = 3
nummfg = numel(类别(MFG))
nummfg = 28.
numModelYear =元素个数(类别(Model_Year))
nummodelyear = 3.

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

使用整个数据集训练一个由500棵回归树组成的随机森林。要种植无偏的树,指定使用曲率测试的分裂预测器。由于数据中缺少值,请指定代理拆分的用法。为了重现随机的预测器选择,使用rng.并指定“重现”,真的

rng (“默认”);%的再现性t = templatetree('预测互联''曲率'“代孕”'在'...“复制”,真正的);%用于随机预测器选择的重现性mdl = fitrensemble(x,'mpg'“方法”“包”“NumLearningCycles”, 500,...'学习者',t);

通过排列出包外的观察来估计预测器的重要性。并行执行计算。

选择= statset ('使用指惯',真正的);小鬼= oobPermutedPredictorImportance (Mdl,“选项”、选择);
使用“本地”配置文件启动并行池(Parpool)连接到并行池(工人数:6)。

用条形图比较估计值。

数字;酒吧(IMP);标题(“out - bag perised Predictor Importance Estimates”);ylabel ('估计');Xlabel(“预测”);H = GCA;h.xticklabel = mdl.predictornames;H.xticklabelrotation = 45;H.TicklabelInterpreter =.'没有任何';

在这种情况下,Model_Year最重要的预测因素是什么气缸.将这些结果与评估预测因素的重要性

更多关于

全部展开

提示

当种植随机森林使用fitrensemble.

  • 标准推车倾向于选择包含许多不同值的分割预测器,例如连续变量,在包含几个不同值的那些中,例如,分类变量[3].如果预测器数据集是异构的,或者如果有比其他变量具有相对较少的不同值的预测器,那么考虑指定曲率或交互测试。

  • 使用标准推车生长的树木对预测器变量相互作用不敏感。而且,这种树木在许多不相关的预测因子存在中的可能性不太可能识别重要的变量,而不是应用相互作用测试的存在。因此,要考虑预测器相互作用并在存在许多无关变量的情况下确定重要变量,请指定交互测试[2]

  • 如果训练数据包含许多预测器,而您想要分析预测器的重要性,那么请指定“NumVariablesToSample”templateTree函数作为'全部'对于合奏的树型学习者。否则,软件可能不会选择一些预测因子,低估它们的重要性。

有关详细信息,请参见templateTree选择分裂预测器选择技术

参考文献

[1] Breiman, L., J. Friedman, R. Olshen, C. Stone。分类和回归树.Boca Raton,FL:CRC Press,1984。

[2] Loh, W.Y., <具有无偏变量选择和交互检测的回归树>Statistica中央研究院,卷。12,2002,第361-386页。

[3] LOH,W.Y.和Y.S.Shih。“分类树的分离选择方法。”Statistica中央研究院, 1997年第7卷,第815-840页。

扩展功能

介绍在R2016B.