首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >训练ANN时对样本进行加权

训练ANN时对样本进行加权
EN

Stack Overflow用户
提问于 2020-08-18 17:43:46
回答 1查看 31关注 0票数 0

我实际上是在MATLAB上训练一个神经网络来优化一个泵。我有2000个样本作为泵设计的输入和效率的输出。我已经得到了一些好的结果,但现在我想重新训练模型。我想重新排列每个样本的权重,以便效率更高的样本具有比小效率更高的权重。

我如何通过效率来衡量我的样本?

下面是我的一段代码:

代码语言:javascript
复制
Mdl_NN1 = fitnet([6 4],training);
Mdl_NN1.layers{2}.transferFcn = 'purelin';
Mdl_NN1.divideParam.trainRatio = 70/100;
Mdl_NN1.divideParam.valRatio = 15/100;
Mdl_NN1.divideParam.testRatio = 15/100;
Mdl_NN1.trainParam.showWindow  = true;
[Mdl_NN1,TR] = train(Mdl_NN1,XtrainSet',YtrainSet(:,2)')

Xtrainset表示泵的6个参数的设计,YtrainSet表示泵的效率。

EN

回答 1

Stack Overflow用户

发布于 2020-08-19 14:38:29

这一切都是关于管理你的数据(这特别适用于NNs)。因此,如果你想要给某些样本赋予比其他样本更多的权重,请复制它们以进行训练,并删除其他错误的样本。这比摆弄权重或更改训练/测试/验证的部分要好。

警告一句:如果您复制数据,请确保它只出现在training set中。如果您考虑使用相同的示例进行训练和测试,您将获得不可靠的准确性。因此,您可能需要显式设置训练/测试/验证数据。在文档中查看一下divide data for optimal neural network training

代码语言:javascript
复制
Mdl_NN1.divideFcn = 'divideind';
Mdl_NN1.divideParam.trainInd = % vector with indices
Mdl_NN1.divideParam.testInd = % vector with indices
Mdl_NN1.divideParam.valInd = % vector with indices

或者可以足以设置数据是否被正确排序

代码语言:javascript
复制
Mdl_NN1.divideFcn = 'divideblock';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63465980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档