用MATLAB实现bp神经网络多分类但是想要预测新的数据集的时候识别率就变成0了怎么回事

代码是站内修改鸢尾花多分类的
😭一开始运行的时候没有什么问题,但是这个代码训练集和测试集都是用的同一个数据集,我想把它改成测试集使用新的未分类的数据的,但是运行之后识别率变成0了。不知道怎么回事
我修改的代码如下:

img

img

img

img

😭s52是我自己分类好的数据集,进行测试的时候如果用s52随机数据进行测试的话识别率还是很高的,但是我想改成用没分类的想要预测的数据集testt进行测试之后识别率就变成0了
有人知道怎么回事吗。555是因为数据量不够还是啥,我用工具箱进行预测可以预测出来的,如果这个代码有错误的话要怎样进行修改啊

还有我想要将未分类的想要预测的数据用这个训练好的模型进行预测出分类结果(1/2/3)的话需要增加哪些代码啊,看了很多例子都没有这样的,本来打算用决策树做的但是没看明白

有知道解决方案的巨佬吗,麻烦大家了,我自己真的搞不明白

朋友,你那些代码能不能来聊天页面复制张贴发我一下,然后我好帮你看看,然后回答你

有几种情况:1.权重损坏了,你可以打印出来看看,是不是全零或者其他奇怪的数值。2.测试集和训练集差别很大,训练出来的模型,完全不适合对新数据集的分类 3. 过拟合了,不过即使过拟合也不太可能出现结果为零。4. 最有可能是你的数据前后处理出错了。数据输入网络时,是否跟训练时一致,比如是否归一化等等。推理结果处理是否正确,比如是否使用sigmoid或者softmax进行处理。

在进行分类的预测过程中,你想要对某一数据进行训练分类,那么你的训练集和测试集的特性要大致相同。也就是假如你要进行人脸识别,肯定是要采集人的脸部信息,如果采用动物的脸部信息进行训练,然后测试人脸,那肯定测试出来的效果很差。因此,你新的测试集,一定是和训练集具有相关性的,不然用原来的训练集去训练,而采用的新测试集和它无相关性,那效果肯定差。
所以,题主的新测试集是同一个数据集吗?如果,不是,那就要考虑上述这个原因

1、如果是训练完的的mat文件,而待识别的字符是 未进行训练的 可以这样说 肯定识别不出来
2、如果都能识别出来 那还研究啥神经算法(就你这么简单2步)
3、你的程序本身就是自己训练然后再识别自己的,只是给你算法的过程

建议将代码格式化发出来,或者截编辑器上面的代码以及运行信息之类的,聊天截图很难看到毛病,聊天界面也可能出现字符转义的现象

应该是参数设置的不对,需要调整