thesoens/main.py

64 lines
1.3 KiB
Python

import numpy as np
from choosenext import choosenext
from plt import plt
def draw(p,dat):
mp=np.mean(p)
d=np.square(p-mp)
sx=[(xx,dd) for xx,dd in zip(dat,d)]
sx.sort(key=lambda x:x[1])
sx=[zw[0] for zw in sx]
sx=np.array(sx)
col1=[1.0,0.0,0.0]
col2=[0.0,1.0,0.0]
col1,col2=np.array(col1),np.array(col2)
ln=len(sx)
cols=[col1*(i/ln)+col2*(1-i/ln) for i in range(ln)]
plt.scatter(sx[:,0],sx[:,1],c=cols)
def combine(a,b):
a=1+(a-np.mean(a))/np.std(a)
b=1+(b-np.mean(b))/np.std(b)
toc=np.concatenate((np.expand_dims(a,axis=1),np.expand_dims(b,axis=1)),axis=1)
toc=np.sqrt(np.mean(toc**2,axis=1))
return toc
if __name__=="__main__":
f=np.load("merged.npz")
dat=f["x"]
x=f["ps"]
np.random.shuffle(x)
given=x[0]
possble=x[1:5]
ac=choosenext(given,possble)
nextbest=ac[:,0]
remainder=ac[:,1:]
for row in np.transpose(ac):
print(np.corrcoef(given,row)[0,1])
#as you see: the correlation is the lowest for the first row.
#so lets combine it
updated=combine(given,nextbest)
draw(given,dat)
plt.savefig("before.png")
plt.show()
draw(nextbest,dat)
plt.savefig("suggestion.png")
plt.show()
draw(updated,dat)
plt.savefig("updated.png")
plt.show()