import numpy as np
import math
def f(ax):
ys=[]
for x1 in x:
yy=ax[0]
for i in range(2):
yy=yy+ax[i+1]*x1[i]
ys.append(yy)
return ys
def g(ys):
z=0
for i in range(len(y)):
g1=1+math.exp(-ys[i])
g2=1/g1
z=z+(y[i]-g2)*(y[i]-g2)
return z
x=[[1,2],[3,4],[5,6],[7,8],[9,10]]
y=[0,0,0,1,1]
ming=5000
asp=[0,9,9]
for tr in range(100):
dice=[]
for i in range(-5,6):
dice.append(i)
a=[]
for i in range(3):
a1=np.random.choice(dice)
a.append(a1)
ys=f(a)
g1=g(ys)
if ming>g1:
asp=a
ming=g1
print(ming)
print(asp)
最終更新:2018年01月06日 01:44