Download parallel/score.py from Eric-Yyvuw/yeepee-ctr: direct link, hf CLI and curl.
- Browser
- Download file 2.2 kB
-
https://huggingface.co/Eric-Yyvuw/yeepee-ctr/resolve/main/parallel/score.py
- Command line
-
hf download hf://Eric-Yyvuw/yeepee-ctr/parallel/score.py
-
curl -L -o score.py https://huggingface.co/Eric-Yyvuw/yeepee-ctr/resolve/main/parallel/score.py
2.2 kB
| """Like-for-like scoring of saved val predictions (v3 vs v2work) on identical rows. Read-only on v2work/v3.""" | |
| import sys, json, numpy as np, polars as pl | |
| sys.path.insert(0, '/workspace/huawei/v4') | |
| from common import report | |
| from scipy.stats import spearmanr | |
| V2='/workspace/huawei/v2work'; V3='/workspace/huawei/v3' | |
| out={} | |
| for cut, v3pred, v2preds in [(25, 'full25.txt', {'v2work_notime_eft_ne (combo_val25_notime.npy, 300r)':'combo_val25_notime.npy', | |
| 'v2work_notime_x2 (04:26)':'combo_val25_notime_x2.npy', | |
| 'v2work_screen_base_25pct':'scr_base_c25.npy'}), | |
| (26, 'full26_lr05.txt', {'v2work_screen_base_25pct (scr_base_c26.npy)':'scr_base_c26.npy'})]: | |
| # v3 val table: load_table sorts by (fold, eid) -> rows sorted by eid with stable intra-event order | |
| v3 = pl.read_parquet(f'{V3}/feat/val{cut}.parquet', columns=['rowid','eid','clicked','tm_stale']) | |
| v3 = v3.join(pl.read_parquet(f'/workspace/huawei/parallel/v3_val{cut}_pred.parquet'), on='rowid', how='left') # re-predicted (v3_repredict.py) | |
| assert v3['p_v3'].null_count()==0 | |
| v2 = pl.read_parquet(f'{V2}/feat_v3/val{cut}.parquet', columns=['rowid','eid','clicked','tm_stale']) | |
| for nm,f in v2preds.items(): | |
| p=np.load(f'{V2}/{f}'); assert len(p)==v2.height, (f,len(p),v2.height); v2=v2.with_columns(pl.Series(nm,p)) | |
| rs3=set(v3['rowid'].to_list()); rs2=set(v2['rowid'].to_list()) | |
| j = v3.join(v2.drop('eid','tm_stale').rename({'clicked':'clicked2'}), on='rowid', how='inner') | |
| res={'rows_v3':v3.height,'rows_v2work':v2.height,'rows_common':j.height,'only_v3':len(rs3-rs2),'only_v2work':len(rs2-rs3), | |
| 'label_mismatch':int((j['clicked']!=j['clicked2']).sum())} | |
| res['v3 ('+v3pred+')']=report(j, j['p_v3'].to_numpy()) | |
| for nm in v2preds: | |
| res[nm]=report(j, j[nm].to_numpy()) | |
| res[nm]['spearman_vs_v3']=round(float(spearmanr(j[nm].to_numpy(), j['p_v3'].to_numpy()).statistic),4) | |
| out[f'val{cut}']=res | |
| print(json.dumps({f'val{cut}':res},indent=1),flush=True) | |
| json.dump(out,open('/workspace/huawei/parallel/score_val.json','w'),indent=1) | |