You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab集成袋装树模型绘制PDP提示输入参数不足,求解决方法

解决Matlab集成袋装树模型绘制PDP时的参数缺失错误

问题场景

我在Matlab分类学习器中构建了集成袋装树模型,用于二分类(0/1)预测。数据集包含62条记录、40个变量(拟合时排除2个),多数为分类变量,采用5折交叉验证,模型已导出为trainedModel。尝试用以下代码绘制部分依赖图(PDP)时触发错误:

Mdl = trainedModel.ClassificationEnsemble;
pd = plotPartialDependence(Mdl,{'Age','exp_val'}); %age and exp_val are ordinal variables

错误提示:

Error using classreg.learning.classif.FullClassificationModel/plotPartialDependence (line 391)
Not enough input arguments.

解决方案

错误核心是plotPartialDependence针对分类模型时,必须显式传入训练数据集(模型需要基于数据计算特征的部分依赖关系),补充参数后即可正常运行。以下是几种可行写法:

1. 传入训练数据集绘制PDP

分类学习器导出的模型通常内置训练数据在trainedModel.X中,直接补充该参数:

Mdl = trainedModel.ClassificationEnsemble;
pd = plotPartialDependence(Mdl, trainedModel.X, {'Age','exp_val'});

2. 指定响应类别绘制目标类别的PDP

如果需要针对二分类中的某个类别(比如类别1)绘制PDP,可添加ResponseValue参数:

Mdl = trainedModel.ClassificationEnsemble;
pd = plotPartialDependence(Mdl, trainedModel.X, {'Age','exp_val'}, 'ResponseValue', 1);

3. 针对交叉验证模型的处理

若trainedModel是交叉验证模型(类型为ClassificationPartitionedEnsemble),需调用交叉验证模型的方法并传入数据集:

Mdl = trainedModel.CrossValidatedModel;
pd = plotPartialDependence(Mdl, trainedModel.X, {'Age','exp_val'});

说明

分类模型的plotPartialDependence方法需要数据集来计算特征与预测结果的边际关系,原代码缺失该必要参数导致报错。确保传入的数据集包含Age和exp_val这两个有序变量且无缺失值,即可正常生成PDP图。

内容的提问来源于stack exchange,提问作者Had

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 10:50:24