用感知器算法求模式分类的解向量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