64 lines
1.3 KiB
Python
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()
|
||
|
|
||
|
|
||
|
|
||
|
|