主要内容

partialDependence

计算部分依赖

描述

例子

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

例子

PD.= partialDependence (ClassificationMdlvar标签计算部分相关PD.所列预测变量之间var以及所指定的类的分数标签通过使用分类模型ClassificationMdl,其中包含预测数据。

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

例子

PD.= partialDependence (___名称,值使用由一个或多个名称-值对参数指定的附加选项。例如,如果指定“UseParallel”,“真正的”,partialDependence函数使用并行计算执行部分依赖关系计算。

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

例子

全部收缩

用。训练朴素贝叶斯分类模型fisheriris数据集,并计算部分依赖值,其显示了预测变量与预测分数之间的关系,用于多个类别。

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

加载fisheriris

用。训练朴素贝叶斯分类模型物种作为回应和作为预测因素。

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

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

[Pd,x] = PartialDependence(MDL,3,MDL.Classnames);

PD包含查询点X的部分依赖值。您可以通过使用绘图功能(如)绘制计算的部分依赖值。阴谋酒吧.阴谋PD.x通过使用酒吧函数。

栏(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数据集,其中包含美国的年薪数据,分类为< = 50 k或者> 50 k和几个人口变量。

加载census1994

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

X = adultdata (1:50 0, {“年龄”“workClass”'教育_num''婚姻状况'“种族”“性”“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对于这两个类(< = 50 k> 50 k).指定要抽样的观察数为100。

(pd, x, y) = partialDependence (Mdl, {“年龄”'教育_num'},mdl.classnames,“NumObservationsToSample”, 100);

为第一类创建部分依赖值的表面图(< = 50 k),使用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的对象。

这两个绘图根据类显示不同的部分依赖模式。

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

加载carsmall数据集。

加载carsmall

创建一个包含重量气缸位移, 和马力

TBL =桌子(重量,气瓶,位移,马力);

使用预测器变量列出SVM回归模型资源描述以及响应变量英里/加仑.使用带有自动核尺度的高斯核函数。

Mdl = fitrsvm (MPG(资源,“ResponseName”“英里”“CategoricalPredictors”“气缸”“标准化”,真的,“KernelFunction”“高斯”“KernelScale”“汽车”);

计算预测响应的部分依赖性(英里/加仑)的预测变量重量马力.属性指定要计算部分依赖性的查询点“QueryPoints”名称-值对的论点。

Numpoints = 10;PTX = Linspace(min(重量),最大(重量),numpoints)';pty = linspace(min(马力),max(马力),numpoints)';(pd, x, y) = partialDependence (Mdl, {'重量'“马力”},“QueryPoints”, (ptX企业]);

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

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 = nexttile (1, 4, 1]);dY = diff(企业(1:2));edgeY = [ptY-dY / 2;企业(结束)+ (dY);直方图(马力,edgeY)包含(“马力”) xlim (ax1.YLim);ax3。XDir =“反向”;camroll (-90)

图中包含3个轴。标题为“部分依赖关系图”的轴1包含一个类型为image的对象。坐标轴2包含一个直方图类型的对象。坐标轴3包含一个直方图类型的对象。

的每个元素PD.指定图像图的一个像素的颜色。与图像轴线对齐的直方图显示了预测因子的分布。

输入参数

全部收缩

回归模型,指定为完整或紧凑的回归模型对象,如下表所示。万博1manbetx

模型 完整或紧凑模型对象
广义线性模型 GeneralizedLinearModel.CompactGeneralizedLinearModel
广义线性混合效应模型 GeneralizedLinearMixedModel
线性回归 LinearModelCompactLinearModel
线性混合效应模型 LinearMixedModel
非线性回归 NonLinearModel
回归模型集合 回归RegressionBaggedEnsembleCompactRegressionEnsemble
广义可加模型 RegressionGAMCompactRegressionGAM
高斯过程回归 RegressionGPCompactRegressionGP
高斯核回归模型采用随机特征展开 RegressionKernel
高维数据的线性回归 RegressionLinear
神经网络回归模型 RegressionNeuralNetworkCompactRegressionNeuralNetwork
万博1manbetx支持向量机回归 RegressionSVMCompactRegressionSVM
回归树 RegressionTreeCompactRegressionTree
决策树集成的自举聚合 treebaggerCompactTreeBagger

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

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

分类模型,指定为完整或紧凑的分类模型对象,如下表所示。万博1manbetx

模型 完整或紧凑模型对象
判别分析分类器 ClassificationDiscriminantCompactClassificationDiscriminant
支持向量机或其他分类器的多类模型万博1manbetx ClassificeCoc.CompactClassificyCoc.
用于分类的学习者集合 ClassificationEnsembleCompactClassificationEnsembleClassificationBaggedEnsemble
广义可加模型 ClassificationGAMCompactClassificationGAM
高斯内核分类模型使用随机特征扩展 ClassificationKernel
k- 最终邻居分类器 ClassificationKNN
线性分类模型 ClassificationLinear
多类朴素贝叶斯模型 ClassificationNaiveBayesCompactClassificaiveBayes.
神经网络分类器 ClassIciationneuralNetwork.CompactClassificationNeuralNetwork
万博1manbetx支持向量机(SVM)分类器,用于单级和二进制分类 ClassificationSVMCompactClassificationSVM
用于多类分类的二叉决策树 ClassificationTreeCompactClassificationTree
袋装决策树集合 treebaggerCompactTreeBagger

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

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

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

一个预测变量

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

预测变量的名称。名称必须与条目匹配RegressionMdl。PredictorNames或者ClassificationMdl。PredictorNames

两个预测变量

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

预测变量的名称。数组中的每个元素是预测器变量的名称。名称必须与条目匹配RegressionMdl。PredictorNames或者ClassificationMdl。PredictorNames

例子:{x1, x3的}

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

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

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

此参数仅在以下情况下有效ClassificationMdl是一个分类模型对象。

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

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

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

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

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

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

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

  • partialDependence不支持稀疏矩阵。万博1manbetx

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

数据类型:||桌子

名称-值对的观点

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

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

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

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

例子:“IncludeInteractions”,假的

数据类型:逻辑

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

例子:“IncludeIntercept”,假的

数据类型:逻辑

要抽样的观察数,指定为正整数。默认值是观测总数数据或模型(RegressionMdl或者ClassificationMdl).如果您指定大于总观察数的值,那么partialDependence使用所有观察。

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

例子:'numobservationstosample',100

数据类型:|

用于计算数值预测器的部分依赖性的点,该预测器指定为数值列向量、数值两列矩阵或由两个数值列向量组成的单元格数组。

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

  • 如果选择两个预测变量var

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

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

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

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

如果选择一个数字变量和一个分类变量,则可以指定“QueryPoints”通过使用由数字列向量和空数组组成的小区阵列来获取数字变量。

例子:QueryPoints, {pt, []}

数据类型:||细胞

并行运行的标志,指定为真的或者错误的.如果您指定'使用指定',真实,partialDependence函数执行为了- 通过使用并行迭代parfor预测每个观察结果的反应或分数并将其平均。此选项需要并行计算工具箱™。

例子:'使用指定',真实

数据类型:逻辑

输出参数

全部收缩

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

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

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

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

数据类型:||分类

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

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

数据类型:||分类

更多关于

全部收缩

回归模型的偏依赖

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

考虑对子集的部分依赖X年代整个预测变量集X= {x1x2,......,x.一个子集X年代包括一个或两个变量:X年代= {xS1或者X年代= {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年代),使用输入参数RegressionMdlvar,分别。partialDependence计算100个均匀间隔点的部分依赖X年代或者你用“QueryPoints”名称-值对的论点。你可以指定号码(N)通过使用通过给定的预测器数据来样的观察“NumObservationsToSample”名称-值对的论点。

部分依赖分类模型

在分类模型中,partialDependence使用与回归模型相同的方法计算部分依赖关系,但有一个例外:该函数使用的不是来自模型的预测响应,而是针对中指定的类的预测分数标签

加权算法遍历

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

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

对于一组袋装树,估计的偏相关性是单个树的加权平均值的平均值。

算法

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

回归模型对象

模型类型 完整或紧凑的回归模型对象 预测反应功能
决策树集成的自举聚合 CompactTreeBagger 预测
决策树集成的自举聚合 treebagger 预测
回归模型集合 回归RegressionBaggedEnsembleCompactRegressionEnsemble 预测
高斯核回归模型采用随机特征展开 RegressionKernel 预测
高斯过程回归 RegressionGPCompactRegressionGP 预测
广义添加剂模型 RegressionGAMCompactRegressionGAM 预测
广义线性混合效应模型 GeneralizedLinearMixedModel 预测
广义线性模型 GeneralizedLinearModel.CompactGeneralizedLinearModel 预测
线性混合效应模型 LinearMixedModel 预测
线性回归 LinearModelCompactLinearModel 预测
高维数据的线性回归 RegressionLinear 预测
神经网络回归模型 RegressionNeuralNetworkCompactRegressionNeuralNetwork 预测
非线性回归 NonLinearModel 预测
回归树 RegressionTreeCompactRegressionTree 预测
万博1manbetx支持矢量机器 RegressionSVMCompactRegressionSVM 预测

分类模型对象

模型类型 完整或紧凑分类模型对象 预测标签和分数的功能
判别分析分类器 ClassificationDiscriminantCompactClassificationDiscriminant 预测
支持向量机或其他分类器的多类模型万博1manbetx ClassificeCoc.CompactClassificyCoc. 预测
用于分类的学习者集合 ClassificationEnsembleCompactClassificationEnsembleClassificationBaggedEnsemble 预测
高斯内核分类模型使用随机特征扩展 ClassificationKernel 预测
广义添加剂模型 ClassificationGAMCompactClassificationGAM 预测
k最近的邻居模型 ClassificationKNN 预测
线性分类模型 ClassificationLinear 预测
朴素贝叶斯模型 ClassificationNaiveBayesCompactClassificaiveBayes. 预测
神经网络分类器 ClassIciationneuralNetwork.CompactClassificationNeuralNetwork 预测
万博1manbetx支持向量机的一类和二值分类 ClassificationSVMCompactClassificationSVM 预测
用于多类分类的二叉决策树 ClassificationTreeCompactClassificationTree 预测
袋装决策树集合 treebaggerCompactTreeBagger 预测

选择功能

参考文献

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

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

扩展功能

在R2020B中介绍