所以我现在做了一个只有一层的神经网络(我不知道你是把它叫做神经网络还是仅仅是感知器)。我的问题是,我现在试图将它扩展到一个两层网络,我想绘制这个决策边界。我将第一层的权重存储在$W$中,第二层的权重存储在$V$中。我一直在感知器中使用的代码如下:
def plotting(classA, classB, tot_class):
w = perceptron2(X,t,100)
print(w)
area = np.pi*3
plt.scatter(classA[:,0], classA[:,1], s = area, c='b', alpha=0.5)
plt.scatter(classB[:,0], classB[:,1],s=area, c= 'r', alpha = 0.5)
grid = np.linspace(np.amin(tot_class),np.amax(tot_class))
y = []
for x in grid:
slope = -(w[0][0] / w[0][2]) / (w[0][0] / w[0][1])
intercept = -w[0][0] / w[0][2]
y.append((slope*x) + intercept)
plt.plot(grid,y, color = 'black')
plt.show()但是让我们说真的,如果我期望我的数据集线性可分的话,我就没有任何理由去实现神经网络了,所以很明显,我不能用这个方程作为一条直线,但是我如何处理这个问题呢?我的第一个想法是画出我的目标是0的函数(也就是说,它有50 %的机会被限定为-1或+1),但这真的是我应该去的方式吗?
发布于 2019-01-28 11:54:39
一种解决方案是在你的地块上定义一个网格,让感知器预测每一个值。然后你就可以用一种颜色画出所有的A类预测和另一种颜色的A类预测。这两种颜色之间的线是决定边界。
看看this answer。
https://stackoverflow.com/questions/54399055
复制相似问题