import numpy as np def f(a): e=[] for i in range(len(x)): z=a[0]+a[1]*x[i][0]+a[2]*x[i][1] e1=0 if z>0: e1=1 e.append(e1) sig=0 for i in range(len(y)): sig=sig+(y[i]-e[i])*(y[i]-e[i]) return sig x=[[1,2],[3,4],[5,6],[7,8],[9,10]] y=[0,0,0,1,1] d=[] for i in range(-10,11): d.append(i) ax=[0,0,0] minsig=9999999 for tr in range(100): a=[] for i in range(3): d1=np.random.choice(d) a.append(d1) sig=f(a) if sig<minsig: minsig=sig ax=a print(ax) print(minsig)