用感知器算法求模式分类的解向量w
import numpy as np
X=[[0,0,0,1],[1,0,0,1],[1,0,1,1],[1,1,0,1],[0,0,-1,-1],[0,-1,-1,-1],[0,-1,0,-1],[-1,-1,-1,-1]]
x=np.array(X)
x
array([[ 0, 0, 0, 1],
[ 1, 0, 0, 1],
[ 1, 0, 1, 1],
[ 1, 1, 0, 1],
[ 0, 0, -1, -1],
[ 0, -1, -1, -1],
[ 0, -1, 0, -1],
[-1, -1, -1, -1]])
c=1
k=0
w=np.array([0,0,0,0])
flag=1
while flag:
for i in x:
if w@i.T <= 0:
w=w+i
k=0
else:
k=k+1
if k==8:
flag=0
break
print(w)
[ 2 -2 -2 1]
print('dx= '+str(w[0])+'x1+ '+str(w[1])+'x2+ '+str(w[2])+'x3+ '+str(w[3]))
dx= 2x1+ -2x2+ -2x3+ 1