主要内容

partialDependence

计算部分依赖

描述

例子

pd=部分依存(RegressionMdlvars.计算部分相关pd所列预测变量之间vars.以及用回归模型预测的响应RegressionMdl,其中包含预测数据。

例子

pd=部分依存(ClassificationMdlvars.标签计算部分相关pd所列预测变量之间vars.以及在标签通过使用分类模型ClassificationMdl,其中包含预测数据。

pd=部分依存(___数据使用新的预测数据数据.您可以指定数据除了前面语法中的任何输入参数组合之外。

例子

pd=部分依存(___名称,值使用一个或多个名称值对参数指定的其他选项。例如,如果您指定“UseParallel”,“真正的”,partialDependence函数使用并行计算执行部分依赖关系计算。

pdxy) = partialDependence (___同样的回报xy,其中包含第一和第二预测器变量的查询点vars.,分别。如果你指定一个变量vars.,然后partialDependence返回空矩阵([])y

例子

全部折叠

用。训练朴素贝叶斯分类模型fisheriris数据集,并计算部分依赖值,显示预测变量和多个类别的预测得分(后验概率)之间的关系。

加载fisheriris数据集,包括物种(物种)及尺寸()的萼片长度,萼片宽度,花瓣长度和花瓣宽度为150个鸢尾标本。该数据集包含了来自三个物种的50个样本:梭子蟹、花斑蟹和弗吉尼亚蟹。

负载fisheriris

培训一个天真的贝叶斯分类模型物种作为响应为预测因子。

Mdl = fitcnb(量、种类、“PredictorNames”, (“花萼长度”“花萼宽”“花瓣长度”“花瓣宽度”]);

计算被预测分数的第三个预测变量(花瓣长度)的部分依赖值Mdl所有的三个类物种.属性指定类标签一会的属性Mdl

(pd, x) = partialDependence (Mdl 3 Mdl.ClassNames);

pd包含查询点x的偏相关值。可以使用绘图函数(例如)绘制计算出的偏相关值情节酒吧.情节pdx通过使用酒吧函数。

栏(x, pd)传说(Mdl.ClassNames)包含(“花瓣长度”) ylabel (“分数”)标题(“部分依赖阴谋”

图中包含一个坐标轴。标题为Partial dependency Plot的坐标轴包含3个bar类型的对象。这些物品代表着维珍卡。

根据这个模型,发生的概率virginica随着花瓣长度增加。概率setosa约为0.33,花瓣长度从0到2.5左右,然后概率几乎为0。

或者,您可以使用plotPartialDependence函数来计算和绘制部分相关值。

plotPartialDependence (Mdl 3 Mdl.ClassNames)

图中包含一个坐标轴。标题为“部分相关图”的轴包含3个类型为line的对象。这些物品代表着维珍卡。

训练分类模型集合,计算多个类对两个变量的偏相关值。然后绘制出每个类的部分相关值。

加载census1994数据集,其中包含美国的年薪数据,分类为<= 50K.> 50 k,以及一些人口统计学变量。

负载census1994

从表中提取要分析的变量子集AdultData.

X = adultdata (1:50 0, {'年龄'“workClass”“education_num”“marital_status”“种族”......“性”“capital_gain”'capital_loss'“hours_per_week”'薪水'});

利用。训练分类树的随机森林fitcensemble并指定“方法”作为“包”.为了重现性,使用使用创建的树木模板Templatetree.'可重复'选择。

rng ('默认') t = templateTree('可重复',真正的);Mdl = fitcensemble (X,'薪水'“方法”“包”“学习者”t);

检查中的类名Mdl

mdl.classnames.
ans =2 x1分类< = 50 k > 50 k

计算预测器上分数的部分依赖值年龄education_num对于这两个类(<= 50K.> 50 k).指定要抽样的观察数为100。

(pd, x, y) = partialDependence (Mdl, {'年龄'“education_num”}, Mdl。ClassNames,“NumObservationsToSample”, 100);

为第一个类创建部分依赖值的表面图(<= 50K.)通过使用SURFL.函数。

图冲浪(x, y,挤压(pd(1::)))包含('年龄') ylabel (“教育\ _num”) zlabel ('阶级得分<= 50k')标题(“部分依赖情节”30)视图([130])%修改查看角度

图中包含一个坐标轴。标题为“部分依赖关系图”的轴包含一个类型为surface的对象。

为第二个类创建部分依赖值的表面图(> 50 k).

图冲浪(x, y,挤压(pd(2::)))包含('年龄') ylabel (“教育\ _num”) zlabel (' >班成绩50K')标题(“部分依赖情节”30)视图([130])%修改查看角度

图中包含一个坐标轴。标题为“部分依赖关系图”的轴包含一个类型为surface的对象。

这两个图显示了不同类别的部分依赖模式。

训练支持向量机(金宝appSVM)回归模型使用Carsmall.数据集,并计算对两个预测变量的部分依赖。然后,创建一个图表,显示对两个变量的部分依赖,以及每个变量的直方图。

加载Carsmall.数据集。

负载Carsmall.

创建一个包含的表重量气瓶位移,马力

台=表(重量、汽缸、排量、马力);

训练一个支持向量机回归模型使用的预测变量资源描述以及响应变量MPG..使用具有自动内核刻度的高斯内核功能。

Mdl = fitrsvm (MPG(资源,“ResponseName”“英里”......“CategoricalPredictors”“气缸”“标准化”,真的,......'骨箱'“高斯”'kernelscale'“汽车”);

计算预测响应的部分依赖性(MPG.)在预测器变量上重量马力.属性指定要计算部分依赖性的查询点'querypoints'名称-值对的论点。

numPoints = 10;ptX = linspace (min(重量),max(重量),numPoints) ';企业= linspace (min(马力),max(马力),numPoints) ';(pd, x, y) = partialDependence (Mdl, {“重量”“马力”},'querypoints', (ptX企业]);

创建一个包含5x5平铺图表布局的图形。用。绘制对两个变量的部分依赖关系显示亮度图像函数。然后通过使用绘制每个变量的直方图柱状图函数。指定直方图的边缘,以便直方图条的中心与查询点对齐。更改坐标轴属性以对齐绘图的坐标轴。

t = tiledlayout(5,5,“TileSpacing”“紧凑”);ax₁= nexttile (2 (4, 4));显示亮度图像(x, y, pd)标题(“部分依赖情节”) colorbar ('eastoutside'ax₁。YDir =“正常”;ax2 = nexttile(22日[1,4]);dX = diff (ptX (1:2));edgeX = [ptX-dX / 2; ptX(结束)+ dX);直方图(重量,edgeX);包含(“重量”)xlim(ax1.xlim);AX3 = NELTTILE(1,[4,1]);dy = diff(pty(1:2));eddy = [pty-dy / 2; pty(end)+ dy];直方图(马力,eddy)Xlabel(“马力”) xlim (ax1.YLim);ax3。XDir =“反向”;Camroll(-90)

图包含3个轴。具有标题部分依赖性图的轴1包含类型图像的对象。轴2包含类型直方图的对象。轴3包含类型直方图的对象。

的每个元素pd指定图像图的一个像素的颜色。与图像轴对齐的直方图显示了预测器的分布。

输入参数

全部折叠

回归模型,指定为完整或紧凑的回归模型对象,如下表所示。金宝app

模型 完整或紧凑模型对象
广义线性模型 GeneralizedLinearModelCompactGeneralizedLinearModel
广义线性混合效应模型 GeneralizeLmixedModel.
线性回归 LinearModelCompactLinearModel
线性混合效应模型 linearmixedmodel.
非线性回归 NonLinearModel
回归模型集合 RegressionEnsemble回归释迦缩短CompactRegressionEnsemble
广义可加模型 RegressionGAMCompactRegressionGAM
高斯过程回归 RegressionGPCompactregressionGP.
高斯核回归模型采用随机特征展开 RegressionKernel
线性回归用于高维数据 回归线性
神经网络回归模型 RegressionNeuralNetworkCompactRegressionNeuralNetwork
金宝app支持向量机回归 RegressionSVMCompactRegressionSVM
回归树 RegressionTreeCompactregressiontree.
决策树集成的自举聚合 TreeBaggerCompactTreeBagger

如果RegressionMdl是一个不包含预测数据(例如,紧凑型)的模型对象,您必须提供输入参数数据

partialDependence不支持使用稀疏矩阵金宝app训练的模型对象。当您训练一个模型时,使用一个完整的数字矩阵或表格来预测数据,其中行对应于单个的观察结果。

分类模型,指定为完整或紧凑的分类模型对象,如下表所示。金宝app

模型 完整或紧凑模型对象
判别分析分类器 分类Discriminant.CompactClassificationDiscriminant.
支持向量机或其他分类器的多类模型金宝app ClassificationECOCCompactClassificationECOC
学习者的集体融合 ClassificationEnsembleCompactClassificationEnsembleClassificationBaggedEnsemble
广义可加模型 ClassificationGAMCompactClassificationGAM
高斯核分类模型使用随机特征展开 ClassificationKernel
k最近的邻居分类器 ClassificationKnn.
线性分类模型 分类线性
多类朴素贝叶斯模型 ClassificationNaiveBayesCompactClassificationNaiveBayes
神经网络分类器 ClassificationNeuralNetworkCompactClassificationNeuralNetwork
金宝app支持向量机(SVM)分类器用于一类和二值分类 ClassificationSVMCompactClassificationSVM
用于多类分类的二叉决策树 ClassificationTreeCompactClassificationTree.
袋装决策树的合奏 TreeBaggerCompactTreeBagger

如果ClassificationMdl是一个不包含预测数据(例如,紧凑型)的模型对象,您必须提供输入参数数据

partialDependence不支持使用稀疏矩阵金宝app训练的模型对象。当您训练一个模型时,使用一个完整的数字矩阵或表格来预测数据,其中行对应于单个的观察结果。

预测器变量,指定为正整数向量、字符向量、字符串标量、字符串数组或字符向量的单元数组。您可以指定一个或两个预测变量,如下表所示。

一个预测变量

价值 描述
正整数 对应于预测器数据列的索引值。
字符向量或字符串标量

预测变量的名称。名称必须与输入的条目匹配RegressionMdl。PredictorNamesClassificationMdl。PredictorNames

两个预测变量

价值 描述
两个正整数的向量 对应于预测器数据列的索引值。
字符串阵列或字符向量的单元数组

预测变量的名称。数组中的每个元素都是一个预测变量的名称。名称必须与里面的条目相匹配RegressionMdl。PredictorNamesClassificationMdl。PredictorNames

例子:{'x1','x3'}

数据类型:||字符|细绳|细胞

类标签,指定为类别或字符数组、逻辑或数字向量或字符向量的单元格数组。中的值和数据类型标签的类名必须匹配一会的属性ClassificationMdlClassificationMdl。一会).

您可以指定一个或多个类标签。

此参数仅在何时有效ClassificationMdl是一个分类模型对象。

例子:{“红”、“蓝”}

例子:ClassificationMdl。3类名([1])指定标签作为第一和第三类ClassificationMdl

数据类型:||逻辑|字符|细胞|分类

预测器数据,指定为数字矩阵或表。每一行的数据对应一个观察值,每一列对应一个变量。

数据必须与训练模型的预测数据一致(RegressionMdlClassificationMdl),存储在X变量财产。

  • 如果您使用数字矩阵训练模型,那么数据必须是一个数值矩阵。组成列的变量数据必须具有与训练模型的预测变量相同的数量和顺序。

  • 如果您使用表训练模型(例如,资源描述), 然后数据一定是一张桌子。所有的预测变量数据必须具有与中的名称和类型相同的变量名称和数据类型资源描述.但是,的列顺序数据不需要对应的列顺序资源描述

  • partialDependence不支持稀疏矩阵。金宝app

如果RegressionMdlClassificationMdl您是否必须提供不包含预测器数据的模型对象数据.如果模型是包含预测器数据的完整模型对象,并指定此参数,则partialDependence不使用预测数据的模型和使用数据只有。

数据类型:||表格

名称-值对的观点

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

例子:partialDependence (Mdl、var、数据“NumObservationsToSample”,100年,“UseParallel”,真的)用中100个采样观测值计算偏相关值数据和执行- 并行迭代。

标志在部分依赖计算中包含广义可加模型(GAM)的交互项,指定为真正的.此参数仅对GAM有效。也就是说,您只能指定此参数RegressionMdlRegressionGAMCompactRegressionGAM,或ClassificationMdlClassificationGAMCompactClassificationGAM

默认的“IncludeInteractions”价值是真正的如果模型包含交互项。该值必须为如果模型不包含交互项。

例子:'internalidantaction',false

数据类型:逻辑

标记在部分依赖计算中包含广义可加模型(GAM)的截距项,指定为真正的.此参数仅对GAM有效。也就是说,您只能指定此参数RegressionMdlRegressionGAMCompactRegressionGAM,或ClassificationMdlClassificationGAMCompactClassificationGAM

例子:“IncludeIntercept”,假的

数据类型:逻辑

样本的观察次数,指定为正整数。默认值是总观察的数量数据或模型(RegressionMdlClassificationMdl).如果指定的值大于观测总数,则partialDependence使用所有的观察。

partialDependence样本观察,没有替换使用datasample函数,并使用采样的观察值来计算部分相关性。

例子:“NumObservationsToSample”,100年

数据类型:|

指定为数字列向量,数字两列矩阵或两个数字列向量的单元阵列的数字依赖性指定的部分依赖。

  • 如果你选择一个预测变量vars.,使用数字列向量。

  • 如果你选择两个预测变量vars.

    • 使用数字两列矩阵为每个预测变量指定相同数量的点。

    • 使用由两个数字列向量组成的单元格数组为每个预测器变量指定不同数量的点。

默认值是数字列向量或数字两列矩阵,具体取决于所选预测器变量的数量。每个列包含在对应预测器变量的采样观测的最小值和最大值之间的100个均匀间隔点。

您不能修改'querypoints'对于一个分类变量。的partialDependence函数使用所选变量中的所有分类值。

如果选择一个数值变量和一个分类变量,则可以指定'querypoints'通过使用由数字列向量和空数组组成的单元格数组来获取数值变量。

例子:QueryPoints, {pt, []}

数据类型:||细胞

标志以并行运行,指定为真正的.如果您指定“UseParallel”,真的,partialDependence函数执行使用parfor预测每个观察结果的反应或分数并将其平均。此选项需要并行计算工具箱™。

例子:“UseParallel”,真的

数据类型:逻辑

输出参数

全部折叠

部分依赖值,作为numX——- - - - - -numY数值矩阵(用于回归模型)或numLabels——- - - - - -numX——- - - - - -numY数字数组(用于分类模型)。numXnumY第一个和第二个变量的查询点的数量在吗vars.,分别。numLabels类标签的数量在吗标签

的价值pd (i, j, k)查询点的部分依赖值是多少x(j)y(k)类标签。x(j)j第一个预测变量的查询点,和y(k)k第二个预测变量的第一个查询点。

中的第一个预测变量的查询点vars.,作为数字或类别列向量返回。

如果预测器变量是数字的,则可以使用'querypoints'名称-值对的论点。

数据类型:||分类

查询点的第二个预测变量vars.,作为数字或类别列向量返回。

如果预测器变量是数字的,则可以使用'querypoints'名称-值对的论点。

数据类型:||分类

更多关于

全部折叠

回归模型的偏依赖

部分依赖[1]表示在训练过的回归模型中预测变量和预测响应之间的关系。partialDependence通过忽略其他变量,计算预测响应对预测变量子集的部分依赖性。

考虑对子集的部分依赖X年代整个预测变量集X= {x1x2、……x.一个子集X年代包括一个或两个变量:X年代= {xS1X年代= {xS1xS2.让XC是互补的X年代X.预测的响应fX)取决于所有的变量X

fX) =fX年代XC).

预测反应的部分依赖于X年代是由预测响应的期望来定义的XC

f 年代 X 年代 E C f X 年代 X C f X 年代 X C p C X C d X C

在哪里pCXC)为的边际概率XC,也就是说, p C X C p X 年代 X C d X 年代 .假设每一个观察结果都是等可能的,并且X年代XC以及相互作用X年代XC在反应不强烈时,partialDependence利用观测到的预测数据估计部分依赖关系如下:

f 年代 X 年代 1 N σ. 1 N f X 年代 X C (1)

在哪里N是观察人数和X= (X年代XC观察。

当你呼叫partialDependence函数,您可以指定经过训练的模型(F(·))和选择变量(X年代),使用输入参数RegressionMdlvars.,分别。partialDependence计算在100个等间距点处的部分相关X年代或者你用'querypoints'名称-值对的论点。你可以指定号码(N)的观察样本,从给定的预测数据使用“NumObservationsToSample”名称-值对的论点。

部分依赖分类模型

在分类模型中,partialDependence以与回归模型的方式相同的方式计算部分依赖性,其中一个例外:而不是使用从模型中的预测响应,而是使用预测的分数用于指定的类标签

加权算法遍历

加权遍历算法[1]是一种估计基于树的模型的部分依赖性的方法。估计的部分依赖性是在树遍历期间访问的叶节点对应的响应值或得分值的加权平均值。

X年代是整个变量集的子集XXC是互补的X年代X.为每一个X年代值来计算部分依赖,算法从根(开始)节点到叶(终端)节点遍历树,并找到叶节点的权值。遍历首先在根节点上分配一个权值为1。如果一个节点被X年代,该算法遍历适当的子节点X年代价值。子节点的权重变为与其父节点相同的值。如果一个节点被XC,该算法遍历两个子节点。每个子节点的权重变为其父节点的值乘以与每个子节点对应的观察的分数。在完成树遍历之后,算法通过使用指定的权重来计算加权平均值。

对于袋装树的集合,估计的部分依赖性是各种树木的加权平均值的平均值。

算法

partialDependence使用一个预测功能预测响应或分数。partialDependence选择适当的预测根据模型的功能(RegressionMdlClassificationMdl)和运行预测使用默认设置。详细资料预测函数,见预测函数。如果指定的模型是基于树的模型(不包括增强的树集合),则partialDependence采用加权遍历算法代替预测函数。有关详细信息,请参见加权算法遍历

回归模型对象

模型类型 完整或紧凑的回归模型对象 预测反应功能
决策树集成的自举聚合 CompactTreeBagger 预测
决策树集成的自举聚合 TreeBagger 预测
回归模型集合 RegressionEnsemble回归释迦缩短CompactRegressionEnsemble 预测
高斯核回归模型采用随机特征展开 RegressionKernel 预测
高斯过程回归 RegressionGPCompactregressionGP. 预测
广义加性模型 RegressionGAMCompactRegressionGAM 预测
广义线性混合效应模型 GeneralizeLmixedModel. 预测
广义线性模型 GeneralizedLinearModelCompactGeneralizedLinearModel 预测
线性混合效应模型 linearmixedmodel. 预测
线性回归 LinearModelCompactLinearModel 预测
线性回归用于高维数据 回归线性 预测
神经网络回归模型 RegressionNeuralNetworkCompactRegressionNeuralNetwork 预测
非线性回归 NonLinearModel 预测
回归树 RegressionTreeCompactregressiontree. 预测
金宝app支持向量机 RegressionSVMCompactRegressionSVM 预测

分类模型对象

模型类型 完整或紧凑分类模型对象 预测标签和分数的功能
判别分析分类器 分类Discriminant.CompactClassificationDiscriminant. 预测
支持向量机或其他分类器的多类模型金宝app ClassificationECOCCompactClassificationECOC 预测
学习者的集体融合 ClassificationEnsembleCompactClassificationEnsembleClassificationBaggedEnsemble 预测
高斯核分类模型使用随机特征展开 ClassificationKernel 预测
广义加性模型 ClassificationGAMCompactClassificationGAM 预测
k最近的邻居模型 ClassificationKnn. 预测
线性分类模型 分类线性 预测
朴素贝叶斯模型 ClassificationNaiveBayesCompactClassificationNaiveBayes 预测
神经网络分类器 ClassificationNeuralNetworkCompactClassificationNeuralNetwork 预测
金宝app支持向量机的一类和二值分类 ClassificationSVMCompactClassificationSVM 预测
用于多类分类的二叉决策树 ClassificationTreeCompactClassificationTree. 预测
袋装决策树的合奏 TreeBaggerCompactTreeBagger 预测

替代功能

参考

[1]弗里德曼,杰罗姆。贪婪函数近似:梯度增压机统计史29,不。5(2001):1189-1232。

哈斯蒂,特雷弗,罗伯特·蒂布希拉尼和杰罗姆·弗里德曼。统计学习的要素。纽约,纽约:施普林格纽约,2009。

扩展功能

介绍了R2020b