0

我有两个高斯分布样本,一个高斯包含10,000个样本,另一个高斯也包含10,000个样本,我想用这些样本训练一个前馈神经网络,但我不知道有多少为了得到最佳的决策边界,我必须采取样本。 这是代码,但我不知道确切的解决方案和输出是怪异的。在Matlab中的前馈神经网络分类

x1 = -49:1:50; 
x2 = -49:1:50; 
[X1, X2] = meshgrid(x1, x2); 
Gaussian1 = mvnpdf([X1(:) X2(:)], mean1, var1);// for class A 
Gaussian2 = mvnpdf([X1(:) X2(:)], mean2, var2);// for Class B 
net = feedforwardnet(10); 
G1 = reshape(Gaussian1, 10000,1); 
G2 = reshape(Gaussian2, 10000,1); 
input = [G1, G2]; 
output = [0, 1]; 
net = train(net, input, output); 

当我运行代码时,它给了我奇怪的结果。 如果代码不正确,有人可以给我建议,这样我就可以得到这两个分布的决定边界。

+0

我不清楚你真正想要什么。你能更具体地描述你的训练集吗? –

+0

简而言之,我想要找到这个前馈NN的准确性,我想为这个高斯分布画出这个分类器的决策边界。 :) – ASAD

+0

要绘制决策边界,这篇文章可能会有一些帮助:http://stackoverflow.com/questions/33502666/draw-divisory-mlp-line-together-with-chart-in-matlab/33503674#33503674 – rayryeng

回答

0

我很确定输入必须是高斯分布(而不是x坐标)。实际上NN必须理解你感兴趣的现象本身(高斯分布)和输出标签之间的关系,而不是包含现象和标签的空间之间的关系。此外,如果选择坐标,神经网络将尝试理解后者与输出标签之间的某种关系,但x可能是恒定的(即,输入数据可能甚至都是相同的,因为您可以拥有非常不同的高斯分布在x坐标的相同范围内,仅改变均值和方差)。因此,神经网络最终会被混淆,因为相同的输入数据可能会有更多的输出标签(并且你不希望发生这种情况!!!)。
我希望我是有帮助的。

P.S .:为了怀疑,我必须告诉你,如果你有一个小的训练集,神经网络不能很好地拟合数据。此外,不要忘记使用交叉验证技术验证您的数据模型(一个好的经验法则是将20%的训练集用于交叉验证集,另外20%是同一套测试集设置并因此只使用剩余的60%训练集来训练你的模型)。

+0

确实,我将使用高斯分布作为输入和标签[0,1]作为输出。但我有另一个问题,我的第一个高斯分布有100x100 = 10,000个样本,另一个高斯分布也有100x100 = 10,000个样本总数样本20,000,我不知道我需要采取多少样本才能在这两个类之间作出合理的决定。 – ASAD

+0

纠正我,如果我误解了:你有一个多元正态分布(或多维高斯),你想研究后者高斯概率分布与一些类别的关系。对?在这种情况下,你希望你的100x100矩阵是你假设函数的特征。因此,你为什么要在这个训练集上只用两个例子来使用NN? – Danix89

+0

我有两个gaussians G1和G2,并且使用贝叶斯定理我已经计算了这些gaussians的后验概率,然后绘制了这些分布之间的决策边界,现在我的下一个任务是使用相同的高斯分布样本并将它们应用于前馈NN并比较结果。我希望这将清除问题的含义。 – ASAD