我无法找到任何有关神经网络结果准确性的信息,
我在Matlab中运行字符识别示例,通过输入测试进行网络训练和模拟后,如何计算模拟后输出结果的准确性?
由于某些原因(研究)网络训练后我想改变一些神经元权重并通过输入测试进行模拟然后如何计算其输出精度与精确输出结果相比?这项任务在神经网络中是否可行,
提前感谢您的帮助。
答案 0 :(得分:2)
当您使用[net,tr] = train(net,x,t)
来训练网络时,其中net
是已配置的网络,x
是输入矩阵,t
是目标矩阵,第二个返回的参数tr
是培训记录。如果您只是在控制台上显示tr
,您会看到类似
tr =
trainFcn: 'trainlm'
trainParam: [1x1 struct]
performFcn: 'mse'
performParam: [1x1 struct]
derivFcn: 'defaultderiv'
divideFcn: 'dividerand'
divideMode: 'sample'
divideParam: [1x1 struct]
trainInd: [1x354 double]
valInd: [1x76 double]
testInd: [1x76 double]
stop: 'Validation stop.'
num_epochs: 12
trainMask: {[1x506 double]}
valMask: {[1x506 double]}
testMask: {[1x506 double]}
best_epoch: 6
goal: 0
states: {1x8 cell}
epoch: [0 1 2 3 4 5 6 7 8 9 10 11 12]
time: [1x13 double]
perf: [1x13 double]
vperf: [1x13 double]
tperf: [1x13 double]
mu: [1x13 double]
gradient: [1x13 double]
val_fail: [0 0 0 0 0 1 0 1 2 3 4 5 6]
best_perf: 7.0111
best_vperf: 10.3333
best_tperf: 10.6567
其中包含有关培训结果的所有信息。 Matlab有一些用于操作此记录的内置函数,其中最有用的是:
plotperform(tr)
- 在performFcn
tr
计算的情节效果
plotconfusion(t,y)
- 绘制confusion matrix,它是一个非常简洁的图形显示,显示您的网络错误分类的内容,并显示每个类中的正确/不正确百分比以及总数。 t
是目标矩阵,y
是计算输出,您可以使用y=net(x)
为x
输入矩阵提取。
答案 1 :(得分:2)
绘图分类混淆矩阵
plotconfusion(目标,输出)显示分类混淆网格。
以下是正确和错误分类的总体百分比:
[c,cm] = confusion(Target,Output)
fprintf('Percentage Correct Classification : %f%%\n', 100*(1-c));
fprintf('Percentage Incorrect Classification : %f%%\n', 100*c);