⑴ 你好 请问神经网络的预测结果与真实结果如何比较,比较图的程序如何编写 谢谢
看你用神经网络是来分类还是回归。分类应用和回归应用的结果分析手段不一样。如果是分类,预测准确率是常用的衡量指标,稍微复杂点的有ROC曲线或者AUC值,Matlab里应该有计算ROC曲线和AUC值的现成函数,希望对你有用
⑵ MATLAB中训练LM算法的BP神经网络
1.初始权值不一样,如果一样,每次训练结果是相同的
2.是
3.在train之前修改权值,IW,LW,b,使之相同
4.取多次实验的均值
一点浅见,仅供参考
训练误差是否降到一定范围内,比如1e-3,
将训练样本回代结果如何,
训练样本进行了预处理,比如归一化,而测试样本未进行同样的处理
这样的归一化似有问题,我也认为“测试数据的归一化也用训练数据归一化时得出的min和max值”,
请参考这个帖子http://www.ilovematlab.cn/thread-27021-1-1.html
测试数据带入训练好的神经网络误差当然不会达到1e-5,这是预测啊。
但将训练数据带入误差必然是1e-5,算法终止就是因为达到这个误差才终止,这个误差是由训练数据的输入、输出以及神经网络的权值、激活函数共同决定的,神经网络训练完后,权值、激活函数定了,同样的数据再代入神经网络,误差会不等于1e-5?
第二个问题:不可能每个值都达到1e-5,1e-5是MSE(mean square error),它们的平方和除以总数再开方,mse(E)必为1e-5
另外,LM算法虽然训练最快,但是预测精度一般不好,不如gdm,gdx
⑶ 关于神经网络LM训练算法的一些问题
1.初始权值不一样,如果一样,每次训练结果是相同的 2.是 3.在train之前修改权值,IW,LW,b,使之相同 4.取多次实验的均值 一点浅见,仅供参考
⑷ 神经网络的准确率是怎么计算的
其实神经网络的准确率的标准是自己定义的。
我把你的例子赋予某种意义讲解:
1,期望输出[1 0 0 1],每个元素代表一个属性是否存在。像着4个元素分别表示:是否肺炎,是否肝炎,是否肾炎,是否胆炎,1表示是,0表示不是。
2,你的神经网络输出必定不可能全部都是输出只有0,1的输出。绝大部分是像[ 0.9968 0.0000 0.0001 0.9970]这样的输出,所以只要输出中的某个元素大于一定的值,例如0.7,我们就认为这个元素是1,即是有某种炎。否则为0,所以你的[ 0.9968 0.0000 0.0001 0.9970]可以看成是[1,0,0,1],。
3,所以一般神经网络的输出要按一定的标准定义成另一种输出(像上面说的),看调整后的输出和期望输出是否一致,一致的话算正确,不一致算错误。
4,用总量为n的检验样本对网络进行评价,输出调整后的输出,统计错误的个数,记为m。
所以检验正确率可以定义为n/m。
⑸ LMBP神经网络参数,net.trainParam.mu及其相关。
bpnet=newff(pr,[12 4],{'logsig', 'logsig'}, 'traingdx', 'learngdm');
%建立BP神经网络, 12个隐层神经元,4个输出神经元
%tranferFcn属性 'logsig' 隐层采用Sigmoid传输函数
%tranferFcn属性 'logsig' 输出层采用Sigmoid传输函数
%trainFcn属性 'traingdx' 自适应调整学习速率附加动量因子梯度下降反向传播算法训练函数
%learn属性 'learngdm' 附加动量因子的梯度下降学习函数
net.trainParam.epochs=1000;%允许最大训练步数2000步
net.trainParam.goal=0.001; %训练目标最小误差0.001
net.trainParam.show=10; %每间隔100步显示一次训练结果
net.trainParam.lr=0.05; %学习速率0.05
⑹ 通过哪些参数看神经网络拟合出来的函数效果神经网络拟合时如何确定隐藏的节点数
主要看均方误差和其百分比(准确率)。假如你拟合出来是ui,计算(yi-ui)^2的平均值,然后计算这个平均值与yi平均值的比(也就是均方误差百分比),当然用1减去这个百分比就是准确率了。一般也会画一幅图,把yi和ui分别用不同的颜色或者符号表示出来,直观对比。
拟合时的隐含层节点数目前没有一个通行的公式进行确定,只能凭借经验和试凑。一般情况下,问题的复杂程度(非线性程度和维度)越高,隐含层节点数越多。这里介绍一个小经验:先用不太大的节点数进行预测,如果增加节点数测试集准确率和训练集准确率都有所提升,则应该继续增加。如果增加节点数测试集准确率增加很不明显,而训练集准确率还是有所提升,则不应该继续增加,当前的就是很理想的,继续增加节点数只会起到反效果。
⑺ 我想请问下神经网络我的结果不正确预测值为0,这就代表正确值为100%,而且roc曲线只有一条斜线是
或者是样本数量种类太少,取样不科学。或者是条件太宽,区分度不高。
⑻ 为什么用训练好的bp神经网络去测试,准确率为0
1、你可以尝试运行多次后比较其结果,最好重启matlab,再运行你的神经网络程序。
2、确认一下你的bp神经网络参数设置是否合理。
3、也有可能的数据不适合用bp神经网络训练,可以考虑其他方法。
⑼ 卷积神经网络的学习率怎么计算出来的
注意:训练样本和测试样本是不一样的。判断正确和错误,主要是看能不能通过训练分析机以及是否在误差内。正确率的得出:对测试样本进行测试,看看识别出来的有哪些,除以测试样本的总数即可。
⑽ Clementine里C5.0模型正确率和错误率怎么得出来的,效绩评价怎么看,比如以年龄为输出字段
保存网络模型,然后把数据指向到神经网络就可以预测了。