Thibaut Forest
Claude Fable 5
ADOPT campaign-2 frontier ft_vmin7r_wnr20: BATTERYSWAP_FT2 default ON
3f9bf12
Raw History Blame Contribute Delete
1.9 kB
"""General composer on cv.run_bgkf: registers vm7 variant + custom aux kinds
in-process, then runs any (kind, variant, blend) combo. No repo edits.
Usage: compose.py <label> kind=<k> [variant=base] [blend=<k2>:<w>]"""
import sys, time
sys.path.insert(0, '/Users/THIF/repos/BatterySwapAI2026-Example')
import os
os.chdir('/Users/THIF/repos/BatterySwapAI2026-Example')
import numpy as np, pandas as pd
from batteryswap_example import models_cv as mc
from batteryswap_example import cv
label = sys.argv[1]
kind, variant, blend = 'logbag', 'base', None
for a in sys.argv[2:]:
k, v = a.split('=', 1)
if k == 'kind':
kind = v
elif k == 'variant':
variant = v
elif k == 'blend':
b, w = v.split(':')
blend = (b, float(w))
cv.VARIANTS['vm7'] = lambda t: cv.BASE_FEATURES + ['vmin7_rank']
mc.MODELS['aux_ho'] = lambda: mc.LogBagFeats(['hot_90', 'oob_90'])
mc.MODELS['aux_hot'] = lambda: mc.LogBagFeats(['hot_90'])
mc.MODELS['aux_oob'] = lambda: mc.LogBagFeats(['oob_90'])
mc.MODELS['aux_ho30'] = lambda: mc.LogBagFeats(['hot_90', 'oob_90'],
n_estimators=30)
mc.MODELS['aux_ho50'] = lambda: mc.LogBagFeats(['hot_90', 'oob_90'],
n_estimators=50)
t0 = time.time()
df = cv.run_bgkf(kind=kind, variant=variant, blend=blend)
df['cand'] = label
df.to_csv(f'/tmp/cv_bgkfcand_{label}.csv', index=False)
base = pd.read_csv('/tmp/cv_bgkf.csv').groupby('origin')[
['total_cost', 'n_swaps']].sum()
d = df.groupby('origin')[['total_cost', 'n_swaps']].sum()
delta = (d['total_cost'] - base['total_cost']).dropna()
se = delta.std() / np.sqrt(len(delta))
print(f'{label}: SCORE {d["total_cost"].mean():.1f} '
f'delta {delta.mean():+.1f} SE {se:.1f} '
f'{int((delta<0).sum())}W/{int((delta>0).sum())}L '
f'swaps {d["n_swaps"].mean():.1f} [{time.time()-t0:.0f}s]')