主要内容

quantilePredict

预测响应使用袋分位数回归树

描述

例子

YFit= quantilePredict (Mdl,X)返回一个向量的预测反应的中位数X、表或矩阵的预测数据和使用袋回归树MdlMdl必须是一个TreeBagger模型对象。

例子

YFit= quantilePredict (Mdl,X,名称,值)使用指定的一个或多个额外的选项名称,值对参数。例如,指定分位数的概率或树木包括分位数估计。

例子

(YFit,YW)= quantilePredict (___)还返回一个稀疏矩阵响应的重量

输入参数

全部展开

袋回归树,指定为一个TreeBagger创建的模型对象TreeBagger函数。的价值Mdl.Method必须回归

用于估计分位点的预测数据,指定为一个数字矩阵或表。

每一行的X对应于一个观察,每一列对应一个变量。

  • 一个数字矩阵:

    • 变量的列X必须有相同的订单预测变量,训练吗Mdl

    • 如果你训练Mdl使用一个表(例如,资源描述),然后X可以是一个数字矩阵如果资源描述包含所有数值预测变量。如果资源描述包含了异构预测变量(例如,数字和分类数据类型)X是一个数字矩阵,然后呢quantilePredict抛出一个错误。

  • 一个表:

    • quantilePredict不支持多列变量和细金宝app胞数组以外的细胞阵列的特征向量。

    • 如果你训练Mdl使用一个表(例如,资源描述),那么所有的预测变量X必须具有相同的变量名和数据类型的变量,训练吗Mdl(存储在Mdl.PredictorNames)。然而,列的顺序X不需要对应的列顺序资源描述资源描述X可以包含额外的变量(响应变量,观察体重、等等),但quantilePredict忽略了它们。

    • 如果你训练Mdl使用一个数字矩阵,然后预测名称Mdl.PredictorNames和相应的预测变量名称X必须相同。指定预测名称在训练,看到PredictorNames名称-值对论点的TreeBagger函数。所有的预测变量X必须是数值向量。X可以包含额外的变量(响应变量,观察体重、等等),但quantilePredict忽略了它们。

数据类型:||

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

分位数概率,指定为逗号分隔组成的分位数的和数值向量包含值的区间[0,1]。对每个观察(行)X,quantilePredict返回所有概率对应的分位数分位数

例子:“分位数”,[0 0.25 0.5 0.75 1]

数据类型:|

指数的树木在响应估计,使用指定为逗号分隔组成的“树”“所有”或者一个正整数的数值向量。指数对应的细胞Mdl.Trees;其中每个单元包含一个树的合奏。的最大价值必须小于或等于合奏中树木的数量(Mdl.NumTrees)。

“所有”,quantilePredict使用索引1:Mdl.NumTrees

例子:“树”,[1 10 Mdl.NumTrees]

数据类型:字符|字符串||

权重属性来响应从单个树木,指定为逗号分隔组成的“TreeWeights”和一个向量的数值元素个数()负的值。的价值吗名称-值对的论点。

默认值是(大小())

数据类型:|

指定使用哪个树指标进行预测对于每一个观察,指定为逗号分隔组成的“UseInstanceForTree”和一个n——- - - - - -Mdl.Trees逻辑矩阵。n观察(行)的数量吗X。行UseInstanceForTree对应于观测和列对应于学习者Mdl.Trees“所有”显示时使用树的所有观测估计分位数。

如果UseInstanceForTree (j,k)=真正的,然后quantilePredict使用树Mdl.Trees ((k))当它预测的反应观察X (j:)

您可以使用响应数据估计分位数Mdl.Y直接而不是使用随机森林的预测完全由通过指定行值。例如,为观察估计分位数j使用响应数据,使用预测随机森林的所有其他观察,指定这个矩阵:

UseInstanceForTree = true(大小(Mdl.X, 2), Mdl.NumTrees);UseInstanceForTree (j:)= false (1, Mdl.NumTrees);

数据类型:字符|字符串|逻辑

输出参数

全部展开

估计分位数,作为一个返回n——- - - - - -元素个数(τ)数字矩阵。n观察的数量吗X(大小(X, 1)),τ的值是分位数。也就是说,YFit (j,k)是估计的100 *τ(k)%百分比响应的分布X (j:)和使用Mdl

响应的重量,作为一个返回n火车——- - - - - -n稀疏矩阵。n火车训练数据是反应的数量(元素个数(Mdl.Y)),n观察的数量吗X(大小(X, 1))。

quantilePredict使用线性插值预测分位数的经验累积分布函数(C.D.F.)。对于一个特定的观察,您可以使用其响应权重估计分位数使用替代方法,比如近似C.D.F.使用内核平滑。

请注意

quantilePredict获取响应权重通过观察合奏穿过树林。如果您指定UseInstanceForTree和你写一行j完全的值,然后YW (:,j)=Mdl.W相反,也就是说,观察权重。

例子

全部展开

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

负载carsmall

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

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

Mdl是一个TreeBagger合奏。

执行分位数回归预测中值分类训练观察MPG。

medianMPG = quantilePredict (Mdl、排序(位移));

medianMPG是一个n1的数值向量中位数对应响应的条件分布排序的观察位移n观察的数量吗位移

情节上的观察和估计的中位数相同的图。比较值和平均响应。

meanMPG =预测(Mdl、排序(位移));图;情节(位移,英里/加仑,“k”。);持有情节((位移),medianMPG);情节(排序(位移)、meanMPG“r——”);ylabel (的燃油经济性);包含(发动机排量的);传奇(“数据”,“中值”,“的意思是”);持有;

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。这些对象代表数据、中间的意思。

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

负载carsmall

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

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

百分位数进行分位数回归预测2.5%和97.5%十条平行引擎分类中最小和最大位移之间的位移。

predX = linspace (min(位移),max(位移),10)';quantPredInts = quantilePredict (Mdl predX,分位数的[0.025,0.975]);

quantPredInts10-by-2数值矩阵的预测区间对应的观测predX。第一列包含2.5%百分位数,第二列包含97.5%的百分点。

情节上的观察和估计的中位数相同的图。比较百分位预测区间和95%的预测假设的条件分布英里/加仑是高斯。

[meanMPG, steMeanMPG] =预测(Mdl predX);stndPredInts = meanMPG + [1] * norminv (0.975)。* steMeanMPG;图;h1 =情节(位移,英里/加仑,“k”。);持有h2 =情节(predX quantPredInts,“b”);h3 =情节(predX stndPredInts,“r——”);ylabel (的燃油经济性);包含(发动机排量的);传奇([h1, h2 (1), h3 (1)), {“数据”,“95%百分位预测间隔”,“95%的高斯预测间隔”});持有;

图包含一个坐标轴对象。坐标轴对象包含5线类型的对象。这些对象表示数据,95%百分位的预测区间,95%高斯预测区间。

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

负载carsmall

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

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

估计响应随机样本的权重四个训练观察。训练样本和识别选择观察的阴谋。

[predX, idx] = datasample (Mdl.X 4);[~,YW] = quantilePredict (Mdl predX);n =元素个数(Mdl.Y);图;情节(Mdl.X Mdl.Y,“o”);持有情节(predX Mdl.Y (idx),‘*’,“MarkerSize”10);文本(predX-10 Mdl.Y (idx) + 1.5, {奥林匹克广播服务公司。1 '奥林匹克广播服务公司。2》奥林匹克广播服务公司。3 '奥林匹克广播服务公司。4 '});传奇(的训练数据,“选择观察”);包含(发动机排量的)ylabel (的燃油经济性)举行

图包含一个坐标轴对象。坐标轴对象包含6行类型的对象,文本。这些对象代表训练数据,选择观察。

YW是一个n4包含响应加权的稀疏矩阵。行和列对应测试观察训练样本对应的反应。响应指定分位数的重量是独立的概率。

估计条件累积分布函数(C.C.D.F.)的反应:

  1. 升序排序的响应,然后排序响应引起的使用指标权重排序响应。

  2. 计算累计金额超过每一列的排序权重的反应。

[sortY, sortIdx] = (Mdl.Y)进行排序;cpdf =全(YW (sortIdx:));ccdf = cumsum (cpdf);

ccdf (:, j)的经验C.C.D.F.响应给定的测试观察吗j

画出四个经验C.C.D.F.相同的图。

图;情节(sortY ccdf);传奇(“C.C.D.F.给定的测试观察。1 ',“C.C.D.F.给定的测试观察。2》,“C.C.D.F.给定的测试观察。3 ',“C.C.D.F.给定的测试观察。4 ',“位置”,“东南”)标题(有条件的累积分布函数的)包含(的燃油经济性)ylabel (“经验提供”)

图包含一个坐标轴对象。坐标轴对象与标题条件累积分布函数包含4线类型的对象。这些对象代表C.C.D.F.给定的测试观察。1,C.C.D.F.给定的测试观察。2,C.C.D.F.给定的测试观察。3,C.C.D.F.给定的测试观察。4所示。

更多关于

全部展开

提示

quantilePredict估计响应使用训练数据的条件分布每次调用它。预测许多有效分位数,或许多观察有效分位数,你应该通过X作为观察和指定的矩阵或表中的所有分位数向量使用分位数名称-值对的论点。也就是说,避免调用quantilePredict在一个循环。

算法

  • TreeBagger增加一个随机森林回归树使用训练数据。然后,实现分位数随机森林,quantilePredict预测使用经验条件分布分位数响应给定一个观察的预测变量。获得响应的实验条件分布:

    1. quantilePredict通过观察的所有训练Mdl.X通过系综中所有树木,和商店的叶节点训练观察成员。

    2. quantilePredict同样通过每个观测X通过所有的树木。

    3. 为每一个观察X,quantilePredict:

      1. 估计反应的条件分布计算响应的重量每棵树。

      2. 为观察kX为整个合奏,聚合条件分布:

        F ^ ( y | X = x k ) = j = 1 n t = 1 T 1 T w t j ( x k ) { Y j y }

        n是培训的观察(的数量大小(Y, 1)),T系综是树木的数量(Mdl.NumTrees)。

    4. 为观察kX,τ分位数,或者说等价于100年τ%百分比, τ ( x k ) = { y : F ^ ( y | X = x k ) τ }

  • 这个过程描述了如何quantilePredict使用所有指定的权重。

    1. 对所有培训的观察j= 1,…,n和所有选择树t= 1,…,T,

      quantilePredict产品属性vtj=btjwj,奥林匹克广播服务公司训练观察j(存储在Mdl.X (j:)Mdl.Y (j))。btj是观察的次数j在树的引导样品吗twj,奥林匹克广播服务公司观察体重在吗Mdl.W (j)

    2. 对于每一个选择树,quantilePredict标识每个训练观察落的叶子。让年代t(xj)中包含的所有观察叶子的树t的观察j是一个成员。

    3. 对于每一个选择树,quantilePredict使所有的重量在一个特定的规范化叶总和为1,也就是说,

      v t j = v t j 年代 t ( x j ) v t

    4. 对于每一个训练观察和树,quantilePredict包含树的重量(wt、树所指定的)TreeWeights,也就是说,w*tj、树=wt、树vtj*树没有选择预测有0的重量。

    5. 对所有测试观察k= 1,…,KX和所有选择树t= 1,…,TquantilePredict预测的独特观察秋天的树叶,然后确定预测中的所有训练观察树叶。quantilePredict属性权重utj这样

      u t j = { w t j , ; 如果 x k 年代 t ( x j ) 0 ; 否则

    6. quantilePredict总结权重在所有选择的树,也就是说,

      u j = t = 1 T u t j

    7. quantilePredict创建响应权重通过规范权重之和为1,也就是说,

      w j = u j j = 1 n u j

引用

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

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

版本历史

介绍了R2016b