この例では,回帰木のランダムフォレストを成长させるときに,データセットに适した分割予测子选択手法を选択する方法を示します。また,学习データに含める最も重要な予测子を决定する方法も示します。
CARBIG.
データセットを読み込みます。与えられた気筒数,エンジン排気量,馬力,重量,加速,モデル年および生産国に対して自動車の燃費を予測するモデルを考えます。气瓶
那Model_Year
および起源
はカテゴリカル分数であるとします。
加载CARBIG.气缸=分类(缸);Model_Year =分类(Model_Year);起源=分类(cellstr(起源));X =表(汽缸、排量、马力、重量、加速度,Model_Year,起源);
标准购物车アルゴリズムには,一道な値(レベル)が少ない少ない子(カテゴリカルカテゴリカル数など)より,多数のレベルもつもつ子(连连続などもつもつ子をデータがするがあり。综合数码大胆异なるは,标准购物车ではなくは,标准购物车ではなくはははを
各予測子について,データ内のレベルの数を測定します。これを行う方法の1つとして,次のような無名関数を定義します。
分类
を
类别
を使用してすべてののなカテゴリを决定,欠损値は无视する
numel.
をを用してカテゴリカテゴリの数码
次に,varfun.
をを用してこの关键词数量に适适し。
countlevels = @(x)numel(类别(分类(x)));numlevels = varfun(countlevels,x,'输出格式'那'制服');
铁
图酒吧(Numlevels)标题(“预测因素中的水平数量”)包含(预测变量的) ylabel ('级别') h = gca;h.XTickLabel = X.Properties.VariableNames (1: end-1);h.XTickLabelRotation = 45;H.TicklabelInterpreter =.'没有任何';
连続连続数には,カテゴリカルカテゴリカル数より多くのレベルあります。レベル码は子によって大厦异なる,标准购物车を使使しランダムフォレストのの各ノードで予予の选択するでと割子度の推定が不正常になる可能性あり。このようなケースは,曲率検定または交互作用検定をますますます。'预测互联'
を使し。详细详细,分割予測子選択手法の選択を参照してください。
バギングされた200本の回帰木のアンサンブルに学习をさせて,予测子の重要度の値を推定します。以下の名前と値のペアの引数を使用して,木学习器を定义します。
'numvariamblestosample','全部'
- すべての予测子参数がで의使されるするため,すべての予测子数目を各ノードで使し。
“PredictorSelection”、“interaction-curvature”
——交互作用検定を使用して分割予測子を選択するよう指定します。
'代理','开'
- データデータセットに欠损値が含まれているのでので含まれめるてためににし岐を使めるためにししし
t = templateTree ('numvariablestosample'那'全部'那......'预测互联'那'互动曲率'那“代理”那'在');RNG(1);%的再现性mdl = fitrensemble(x,mpg,'方法'那“包”那'numlearnicalnicycle',200,......'学习者',t);
Mdl
はRegressionBaggedEnsemble
モデルです。
外袋予测を使使用して のモデルを推定します。
yHat = oobPredict (Mdl);(R2 = corr Mdl.Y yHat) ^ 2
R2 = 0.8744.
Mdl
は,平均の周辺で変ののの87%をを明します。
木同士でout-of-bag観測値の順序を変更することにより,予測子の重要度の値を推定します。
impOOB = oobPermutedPredictorImportance (Mdl);
冒充
は予測子の重要度の推定が格納されている1行7列のベクトルで,Mdl。PredictorNames
〖图库“
予测子の重要度の推定を比较します。
图酒吧(Impoob)标题(“不偏不倚的预测因素重要性估计”)包含(预测变量的) ylabel ('重要性') h = gca;h.xticklabel = mdl.predictornames;h.XTickLabelRotation = 45;H.TicklabelInterpreter =.'没有任何';
棒グラフ重要度の推定値ががきいほど重要重要なな子Model_Year
であり,次次に重要重要なの气瓶
と重量
であるであることを示し示してい変Model_Year
および气瓶
の异なるレベルはそれぞれ13个および5个ですが,幂数重量
には300个以上のレベルがあります。
外袋観测観测値値およびそれら推定の顺序を変更して予测のの重要度の推定ししますししますますししますししししししし均二乘误差误差のゲインゲインをし二乘误差ののゲイン。 -
[Impgain,Predassociation] =预测测量值(MDL);图绘图(1:numel(mdl.predictornames),[impoob'ilmgain'])标题('预测重点估计比较')包含(预测变量的) ylabel ('重要性') h = gca;h.xticklabel = mdl.predictornames;h.XTickLabelRotation = 45;H.TicklabelInterpreter =.'没有任何';传奇('OOB允许'那'MSE改善') 网格在
impGain
の値によると,変数移位
那马力
および重量
は同じように重要であるようです。
predAssociation
はは子の关键词が格式されている7行列行です。行と列Mdl。PredictorNames
のの子に対応します。関連性予測尺度は,観测値を分类predAssociation
のののペアにおけるできます强大大きいほどできペア关键词ほどますなりペア关键词ほどますなりの关键词。
图显示亮度图像(predAssociation)标题(“预测协会估计”)ColorBar H = GCA;h.xticklabel = mdl.predictornames;h.XTickLabelRotation = 45;H.TicklabelInterpreter =.'没有任何';h.yticklabel = mdl.predictornames;
predassociation(1,2)
ans = 0.6871.
最大の关键词气瓶
と移位
〖图库“
ランダムフォレスト内の予测子子数量がと予测予测空间
最良の2つのつの子のみを使し,200本の回帰木がれてランダムフォレストを成。Templatetree.
の'numvariablestosample'
(fitrensemble
はランダムフォレストアルゴリズムを使用します。
t = templateTree ('预测互联'那'互动曲率'那“代理”那'在'那......'可重复',真的);随机预测器选择的再现性的%mdlreduceed = fitrensemble(x(:,{“Model_Year”'重量'}),MPG,'方法'那“包”那......'numlearnicalnicycle',200,'学习者',t);
缩小したモデルの を计算します。
yHatReduced = oobPredict (MdlReduced);r2Reduced = corr (Mdl.Y yHatReduced) ^ 2
r2R2R2R2.8653
缩小したモデルの は完全なモデルの 〖图库“
Templatetree.
|fitrensemble
|Oobpredict
|OobpermutedPredictorimportance.
|预测算法
|相关系数