import numpy as np import math def f(a): e=[] for i in range(len(x)): z=a[0]+a[1]*x[i][0]+a[2]*x[i][1] e1=1/(1+math.exp(-z)) 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,0],[1,1],[0,1],[0,0],[1,1]] y=[0,1,0,0,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)