【发布时间】:2019-06-21 06:46:28
【问题描述】:
所以我目前已经制作了一个带有一层的神经网络(我不知道你是否称它为神经网络或只是感知器)。我的问题是我现在正在尝试将其扩展为两层网络,并且我想绘制此决策边界。我将第一层的权重存储在 $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),但这真的是我应该采用的方式吗?
【问题讨论】:
标签: python matplotlib neural-network