用matlab训练好bp神经网络之后,在调用这个网络去预测另外的数据(输入参数跟训练的时候一样,只改变了输出参数,输出参数只有一个,就是我训练的时候输出参数用的是实测值,预测的时候输出参数用的是理论值与实测值的偏差),但是运行之后output里的数据跟没改之前一样,请问这是怎么回事呀~
这个问题可能涉及到多个方面,以下是一些可能的原因和解决方法:
数据预处理问题:在输入新数据之前,可能需要对新数据进行与训练数据相同的预处理,如特征缩放、标准化等,以确保新数据与训练数据具有相同的特征分布。
神经网络结构问题:可能需要检查神经网络的结构是否与训练时相同,包括输入层、隐藏层和输出层的节点数量、激活函数等。
权重和偏置问题:神经网络的输出取决于权重和偏置的设置。在使用神经网络进行预测时,需要确保使用了正确的权重和偏置。
输出层激活函数问题:在训练时可能使用不同的激活函数。在预测时,需要使用与训练时相同的激活函数,以确保输出结果正确。
数据标签问题:在训练时,可能使用了不同的标签类型。在预测时,需要使用与训练时相同的标签类型,以确保输出结果正确。
综上所述,要解决这个问题,需要检查和比较训练和预测的设置和参数,以确保它们相同,并检查预处理和输出结果的正确性。如果仍然无法解决问题,可以尝试重新训练神经网络,或者考虑使用其他机器学习算法。
不知道你这个问题是否已经解决, 如果还没有解决的话:额……感觉你这个处理不是很对啊,如果已经训练好的bp神经网络,那么它输入和输出的含义不应该发生变化
比如你训练集的输入是特征A,B,C,输出是特征D,E
那么你验证集也好,以后的预测集也好,输入一定还要是A,B,C这个含义,输出也一定要还是D,E则个含义
训练集、验证集、预测集,更改的只是”样本“,而不应该是特征。
我猜测你可能想分析A,B,C的变化对D,E的变化的影响?所以就把D,E改成了差值?——但是感觉似乎不是很合乎原理
不过换input之后,无论是否科学,output不应该不变的。发生这种情况的原因一般是引用了错误的变量名什么的,可以再检查一下。