应用K-Fold交叉验证模型来预测新数据的反应变量

36视图(30天)
你好,
我已经训练一个k-fold旨在模型使用fitctree分类模型。这是我的代码:
%提取预测和响应
预测= featTable (:, 1: end-1);
响应= featTable.ActivityID;
%的可重复的结果
rng默认的
%使用kFold分区数据的方法
本量利= cvpartition(反应,“KFold”5);%设置KFold 5给最低的损失
%损失计算模型
KFoldMdl = fitctree (featTable,“ActivityID”,“CVPartition”、本量利);
kfLoss = kfoldLoss (KFoldMdl)%模型损失:0.0128
现在我想申请新培训的k-fold corss-validated模型分类新数据模型还没有见过的。我用下面的代码:
预测=预测(KFoldMdl predictorsNew)
当我在我的新运行代码未分类预测,我得到以下错误消息:
错误使用预测
没有有效的数据集发现“预测”命令。使用一个iddata对象指定一个数据集,一个时间表对象,idfrd
对象,或数字矩阵。
我不知道为什么这不是工作上面的代码适用于模型如果在cvpartition训练使用例外选项。我附上我的新预测文件。所以请你帮忙咨询如何k-fold训练旨在模型适用于新数据?我试着使用kfoldPredict但这并不奏效。
任何帮助将不胜感激。
1评论
骑自行车的人
骑自行车的人 2023年6月14日在41
它会有帮助如果你上传所有的数据需要运行以上代码,看起来像
  • featTable,或两者兼而有之预测响应
  • predictorsNew
上传数据的一个子集给出相同的行为会很好。
我不认为这可能是一个数据特有的问题,但它仍然是简单的,如果我们可以复制你所做的,而不是为调试创造我们自己的一个例子。

登录置评。

接受的答案

将本
将本 2023年6月14日行传十三章36节的一句话
您可以使用 预测 在MATLAB函数使用旨在预测反应模型 KFoldMd 和新数据 predictorsNew
的代码是这样的:
y_predict =预测(KFoldMd。训练有素的{1},predictorsNew);
请注意, KFoldMd.Trained {1} 是训练模型第一折交叉验证,您可以使用任何褶皱你认为最佳的性能。
4评论
将本
将本 2023年6月15日10:09
不使用kfoldPredict你不能预测任何新的数据,你可以看到标签的输出给整个数据模型 fitctree函数
检查折叠的性能,你可以自己写一个函数,使用上述方法预测我建议并与真值进行比较。

登录置评。

答案(1)

骑自行车的人
骑自行车的人 2023年6月14日14:46
上面写的评论后立即(仍然是真实的),我想我看到了答案没有额外的信息。
k-fold模型,您需要使用 kfoldPredict (分类树模型)。
1评论
黑斑羚
黑斑羚 2023年6月14日15:06
你好,
谢谢你的反馈。
道歉不包括featTable数据(我已经附加)——我觉得这没有所需的数据用于训练模型,运行良好的代码。
我遇到了一些麻烦将模型应用于新数据(NewPredictors文件)。我曾试图使用kfoldPredict函数但这onlye需要模型作为输入——我看不到如何新的预测包含在这个函数。你能请帮助这个或我只是坚持使用预测函数吗?
提前谢谢!

登录置评。

s manbetx 845


释放

R2022b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!