以二维为例:
def sum(X, w):
sum=0
length = len(X)-1
for index in range(0,length):
sum = sum + X[index]*w[index]
return sum
def Function(X, Y, w, b):
ret = -1
i = 0
while(i < len(Y)):
x=X[i]
if(Y[i]*(sum(x,w)+b) <= 0):
ret = i
break
i = i + 1
return ret
X=[[3,3], [4,3], [1,1], [2,1]]
Y=[1,1,-1, -1]
w=[0,0]
b=0
ret = Function(X,Y,w,b);
while(ret != -1):
t=X[ret]
w[0] = w[0] + Y[ret]*t[0]
w[1] = w[1] + Y[ret]*t[1]
b = b + Y[ret]
#print w, b
ret = Function(X,Y,w,b);
print w, b