File size: 1,051 Bytes
db2fca9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import sys,itertools,numpy as np; sys.dont_write_bytecode=True
from ana import *; import ana; _B=ana._B
n=int(sys.argv[1]) if len(sys.argv)>1 else 7
S={25:('u1',350),23:('u1b',800)}; Z={}
for c,(tag,st) in S.items():
    sd=[s for s in SEEDORD[:n]] if c==25 else [s for s in SEEDORD if s!=10][:n]
    A=avg(tag,c,sd,st); Z[c]=np.stack([zs(A[:,j]) for j in range(4)],1); best(c,Z[c][:,0])  # init cache
def g(c,G,w=.125):
    y,B,M=_B[c]; Gn=nr(G); return np.mean([(AUC(y,(1-w)*b+w*Gn)-AUC(y,b)) for b in B.values()])*1e5
res=[]
for wts in itertools.product([0,.5,1,2],repeat=4):
    if sum(wts)==0 or max(wts)<1: continue
    v=np.array(wts,float); r=[g(c,Z[c]@v) for c in (25,23)]; res.append((min(r),r,wts))
res.sort(reverse=True)
for m,r,w in res[:12]: print('wts s_uv,s_h,cos_mean,cos_max',w,'C25 %.1f C23 %.1f'%tuple(r))
print('baseline (1,1,1,0):',[round(g(c,Z[c]@np.array([1,1,1,0.])),1) for c in (25,23)])
for w in ((1,0,0,0),(0,1,0,0),(0,0,1,0),(0,0,0,1),(1,1,0,0),(1,1,1,1)): print(w,[round(g(c,Z[c]@np.array(w,float)),1) for c in (25,23)])