主要内容

oobPermutedPredictorImportance

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

描述

例子

小鬼= oobPermutedPredictorImportance (Mdl返回的向量外袋,预测器重要性估计排列利用回归树的随机森林MdlMdl必须是一个RegressionBaggedEnsemble模型对象。

例子

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

输入参数

全部展开

回归树的随机森林,指定为aRegressionBaggedEnsemble创建的模型对象fitrensemble

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

学习者用于预测器重要性估计的指标,指定为逗号分隔的对,由“学习者”和一个正整数的数字向量。值必须不超过Mdl。NumTrained.当oobPermutedPredictorImportance估计预测者的重要性,它包括学习者在Mdl。Trained(学习者只有,学习者的值“学习者”

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

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

oobPermutedPredictorImportance使用“UseParallel”字段。statset (UseParallel,真的)调用一个工作者池。

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

输出参数

全部展开

外袋,预测器重要性估计排列,作为1 × -返回p数值向量。p是训练数据中预测变量的数量(大小(Mdl.X, 2)).Imp (j预测器的重要性是预测器吗Mdl。PredictorNames (j

例子

全部展开

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

负载carsmall气缸=分类(缸);及时通知=分类(cellstr (Mfg));Model_Year =分类(Model_Year);X =表(加速、气缸、排量、马力、制造行业,...Model_Year、重量、MPG);

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

Mdl = fitrensemble (X,“英里”“方法”“包”“NumLearningCycles”, 500);

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

rng (“默认”%的再现性t = templateTree (“复制”,真正的);%用于随机预测器选择的再现性Mdl = fitrensemble (X,“英里”“方法”“包”“NumLearningCycles”, 500,“学习者”t);

Mdl是一个RegressionBaggedEnsemble模型。

通过排列袋外观察估计预测者重要性度量。用条形图比较估算值。

小鬼= oobPermutedPredictorImportance (Mdl);图;酒吧(imp);标题(“袋外排列预测器重要性估计”);ylabel (“估计”);包含(“预测”);甘氨胆酸h =;h.XTickLabel = Mdl.PredictorNames;h.XTickLabelRotation = 45;h.TickLabelInterpreter =“没有”

图中包含一个axes对象。标题为out - out - perordered Predictor Importance Estimates的axes对象包含一个类型为bar的对象。

小鬼是预测器重要性估计值的1乘7向量。值越大表示预测器对预测的影响越大。在这种情况下,重量是最重要的预测因素,其次是Model_Year

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

负载carsmall气缸=分类(缸);及时通知=分类(cellstr (Mfg));Model_Year =分类(Model_Year);X =表(加速、气缸、排量、马力、制造行业,...Model_Year、重量、MPG);

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

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

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

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

rng (“默认”);%的再现性t = templateTree (“PredictorSelection”“弯曲”“代孕”“上”...“复制”,真正的);随机预测器选择的再现性。Mdl = fitrensemble (X,“英里”“方法”“包”“NumLearningCycles”, 500,...“学习者”t);

通过排列袋外观察估计预测者重要性度量。并行执行计算。

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

用条形图比较估算值。

图;酒吧(imp);标题(“袋外排列预测器重要性估计”);ylabel (“估计”);包含(“预测”);甘氨胆酸h =;h.XTickLabel = Mdl.PredictorNames;h.XTickLabelRotation = 45;h.TickLabelInterpreter =“没有”

在这种情况下,Model_Year是最重要的预测因素,其次是气缸.把这些结果与……的结果比较估计预测因素的重要性

更多关于

全部展开

提示

当生长一个随机森林使用fitrensemble

  • 标准CART倾向于选择包含许多不同值的分裂预测器,如连续变量,而不是包含少量不同值的预测器,如类别变量[3].如果预测器数据集是异质的,或者如果预测器的不同值相对少于其他变量,那么考虑指定曲率或交互测试。

  • 使用标准CART生长的树木对预测变量的相互作用不敏感。此外,与交互测试的应用相比,这种树不太可能在存在许多不相关预测因素的情况下识别重要变量。因此,为了解释预测器的相互作用并在存在许多不相关变量的情况下识别重要变量,指定相互作用检验[2]

  • 如果训练数据包含许多预测因子,并且您想要分析预测因子的重要性,那么指定“NumVariablesToSample”templateTree函数作为“所有”为树学习者的合奏。否则,软件可能没有选择一些预测因素,低估了它们的重要性。

有关更多细节,请参见templateTree而且选择分裂预测器选择技术

参考文献

[1]布莱曼,L., J.弗里德曼,R.奥申,C.斯通。分类与回归树.佛罗里达州博卡拉顿:CRC出版社,1984。

[2] Loh, W.Y.《无偏变量选择与交互检测回归树》。Statistica中央研究院2002年,第12卷,第361-386页。

[3]陆伟镛及施耀生。分类树的分裂选择方法。Statistica中央研究院, 1997年第7卷,第815-840页。

扩展功能

版本历史

介绍了R2016b

Baidu
map