预测子树的样本外反应
此示例显示了如何预测回归树的样本外反应,然后绘制结果。
加载汽车舞
数据集。考虑重量
作为响应的预测指标MPG
。
加载汽车舞idxnan = isnan(mpg +重量);x =重量(〜IDXNAN);y = mpg(〜IDXNAN);n = numel(x);
将数据分为培训(50%)和验证(50%)集。
RNG(1)%可再现性idxtrn = false(n,1);idxtrn(randsample(n,round(0.5*n)))= true;%训练集逻辑指数idxval = idxtrn == false;%验证设置逻辑指标
使用训练观察结果生长回归树。
mdl = fitrtree(x(idxtrn),y(idxtrn));查看(MDL,'模式',,,,'图形')
计算几个子树中每一个的验证观测值的拟合值。
m = max(mdl.prunelist);prunelevels = 0:2:m;%修剪水平要考虑z = numel(prunelevels);yfit =预测(MDL,x(idxval),,“子树”,prunelevels);
是的
是一个n
-经过-z
拟合值的矩阵,其中行对应于观测值,列对应于子树。
阴谋是的
和y
反对X
。
数字;sortDat = sortrows([x(idxval)y(idxval)yfit],1);%对x进行所有数据排序绘图(stortdat(:,1),sortdat(:,2),,'*');抓住上;绘图(repmat(sortdat(:,1),1,size(yfit,2)),sortdat(::,3:end));lev = celltr(num2str(((prunelevel))',“级别%d mpg”);传奇([“观察到MPG”;LEV])标题“样本外预测”XLABEL'重量磅)';ylabel'mpg';h = findobj(gcf);轴紧的;设置(h(4:end),'行宽',3)%扩大所有线路
值是的
对于较低的修剪水平,倾向于比更高水平更接近数据。较高的修剪水平往往很大X
间隔。