kshana-bench
En öppen uppsättning uppgifter, delningar och mått för detektering av GNSS-störningar och holdover för tidssynkronisering. Specifikationen finns i bench/SPEC.md (version 2.0.0; licens för texten och manifesten: CC-BY-4.0 / CC0 föreslås, ägarens beslut väntar). Granskningen av datamängdens licenser finns i bench/LICENCES.md. Baslinjernas trösklar fastställdes före den första poängsatta körningen i xval/bench/PREREGISTRATION.md och, för 2.0.0, i PREREGISTRATION-v2.md, och deras resultat finns i xval/bench/RESULTS-v2.md.
Utfall så som de registrerats där: poängsättarens trösklar, C1 till C3 och D2, är uppfyllda. A2 är NOT MET (agc_k_sigma AUC 0,766 mot minst 0,80 på testdelningen), D1 är NOT MET (största glapp 0,0301) och uppgift (b) R1 är NOT MET (överfört, inte körd på nytt). Ingen tröskel har sänkts.
Vad det är: ett sätt att jämföra metoder på samma data med samma mätkod. Vad det inte är: en rangordning av produkter, ett godkännande eller belägg för att en metod fungerar i fält. Varje poäng är MODELLED, och en poäng beskriver en logg eller ett korpus, aldrig en produkt. Resultaten från Kshana är rådgivande.
Uppgifter#
| Uppgift | Enhet | Data | Primärt mått |
|---|---|---|---|
| (a) detektering i mottagarloggar | en epok ur en JammerTest 2024-logg | hämtas av scripts/fetch_jammertest2024.sh (GPL-3.0+, aldrig medföljande) |
AUC |
| (b) detektering i IQ | ett poängsatt fönster i en scen | syntetiskt scenrecept från Kshana; TEXBAT endast som referens | AUC per larmtyp |
| (c) prediktion av holdover för tidssynkronisering | (satellit, ursprung) | IGS-klockor vid 300 s (inchecktat utdrag, fastlåst hash) | RMSE vid 3600 s |
| (d) optimismglapp utanför fördelningen | ett syntetiskt fall | korpuset impairment-eval, inom och utanför fördelningen |
AUC ut, och glappet |
Kommandon#
kshana bench spec
kshana bench cases --task d --split test --scale 0.5 --out cases/ # cases.json + truth.json
kshana bench cases --task c --split test --out cases/
kshana bench truth --task a --data <extracted JammerTest 2024> --split test --out truth.json
kshana bench score --truth truth.json --predictions my-scores.json --out my.result.json
kshana bench baseline --task d --split test --out results/ # the built-in baselines
kshana bench validate results/*.result.json
kshana bench leaderboard results/ --out bench/site/index.html
kshana bench seal --task d --seed-file secret.txt --new # owner: make a seed, print only its hash
kshana bench reveal-check --task d --seed-file secret.txt --commitment <hex>
kshana bench manifest --task a --data <extracted dir> --out manifest.json
kshana bench verify-manifest manifest.json --root <dir>
Ett bidrag är en fil (kshana-bench-predictions/1): scores (ett tal per fall-id; högre betyder större sannolikhet för störning) för uppgifterna a, b och d, eller predictions (fasändringen i ns vid varje horisont) för uppgift c. En resultatfil (kshana-bench-result/1) anger specifikationsversion, delning, SHA-256 för referensen och för prediktionerna samt måtten. Resultat från olika huvudversioner av specifikationen läggs aldrig i samma tabell.
Ärliga begränsningar#
- De undanhållna datamängderna med verkliga data (a och c) är offentliga, eftersom vem som helst kan ladda ned data. De skyddar mot att välja en delning efter att ha sett poängen, inte mot justering på dessa mappar. Den förseglade undanhållna datamängden för uppgift (d) är ett åtagande och en avslöjande: ägaren åtar sig bara hashen i
bench/holdout/COMMITMENTS.jsonoch behåller fröet (ingen är förseglad än). - Referensen för uppgift (a) är de schemalagda attackintervallen i händelseloggarna med en minuts upplösning, så en detektionssannolikhet är en nedre gräns. Måtten på händelsenivå (latens, missade larm, falska larm) kommer med Jammertest-poängsättaren i
kshana jammertest score. - IQ-baslinjen för uppgift (b) är överförd från
docs/design/DETECTION-ROC.mdoch har inte körts på nytt för v1. - Korpuset för uppgift (d) är en kontroll av separerbarhet och pipeline. En AUC på det är en AUC över modellhärledda etiketter.