[Lane 1 · numerics] Precision/Recall/F1 — averaging-mode and zero-division conventions
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- Mezza giornata
- Idoneità per principianti
- 68/100
- Tipo di issue
- Documentazione
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- python, pytorch, scikit-learn
- Ambito
- ai, machine-learning
Direzione di ricerca
This is research only: no Kotlin or SKaiNET code. Read sklearn.metrics.precision_recall_fscore_support (docs and source) and torchmetrics.classification Precision, Recall, and F1Score. Build the edge-case table (empty batch, unseen class, one-sided class, all wrong, argmax ties) for macro and micro, then write three short recommendations (zero-division, macro class set, binary/threshold). Confirm the given fixture with a real sklearn call and post table plus recommendations as a comment on issue #1222; done when a maintainer replies adopted or amended.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Sub-issue of #1222 (Precision, Recall and F1Score metrics).
Lane: 1 · Numerics / Research
Skill needed: comfortable reading scikit-learn / torchmetrics source and docs. No Kotlin required, no SKaiNET knowledge required.
Size: s (~2–4 h)
Blocked by: nothing — this is the first task in the feature and unblocks #1226.
What to do
- Read
sklearn.metrics.precision_recall_fscore_support(docs + source) and
torchmetrics.classification.{Precision, Recall, F1Score}(docs + source). - Produce a short table — one row per edge case, one column per library — for:
- empty batch (no samples at all);
- a class that appears in neither predictions nor targets (TP+FP+FN = 0);
- a class that appears only in targets (never predicted) and vice versa;
- all predictions wrong;
- ties in the argmax (two logits exactly equal).
For each: what does the library return for precision / recall / F1 undermacroand
micro, and do the two libraries agree?
- Answer the three decisions the parent issue leaves open, each as a one-paragraph
recommendation with a link a reviewer can click:- Zero-division:
0.0(sklearn default) vs.NaNvs. a parameter. The parent
recommends0.0to matchAccuracy.compute()on an empty accumulator. - Class set for macro averaging: union of classes seen in targets ∪ predictions
(sklearn) vs. the full class dimensionpredictions.shape[dim](which counts
never-seen classes as F1 = 0). These differ on small batches. - Binary mode: does binary mean "report the positive class (index 1) only", and
shouldF1Scoretake athreshold: Float?likeAccuracydoes, or is binary purely
averaging = BINARY?
- Zero-division:
- Post the table and the three recommendations as a comment on #1222 under
its Research section. That comment is the deliverable — not code.
Acceptance
- Edge-case table posted on #1222 with links to the exact sklearn / torchmetrics
doc sections or source lines - Three explicit recommendations (zero-division, macro class set, binary/threshold)
- A maintainer has replied "adopted" (or amended) so #1226 can start from a fixed contract
Notes
The hand-computed reference fixture the Kotlin sub-issues will test against is:
predicted classes [2, 0, 1, 2], targets [2, 1, 1, 0] (3 classes). Expected under
sklearn: per-class precision [0, 1, 0.5], recall [0, 0.5, 1], F1 [0, 0.667, 0.667];
macro P = R = 0.5, macro F1 = 0.444; micro P = R = F1 = 0.5 (= accuracy). Please confirm
those numbers by actually running precision_recall_fscore_support once and paste the
output — that turns a hand calculation into a citable reference.
- Lingua principale
- Kotlin
- Stelle
- 52
- Fork
- 15
- Merge medio
- 1g 15h
- PR unite (30g)
- 36
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di SKaiNET-developers/SKaiNET
-
coding good first issue size:xs skill:kotlin-core sub-issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
SKaiNET-developers/SKaiNET#1323 ·
I maintainer di solito rispondono entro 1 giorno
-
coding good first issue platform size:xs skill:js sub-issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
SKaiNET-developers/SKaiNET#1232 ·
I maintainer di solito rispondono entro 1 giorno
-
skeep tracking
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
SKaiNET-developers/SKaiNET#1331 ·
I maintainer di solito rispondono entro 1 giorno
-
assessment size:s skill:review sub-issue
Difficoltà 4/5 1-2 giorni Idoneità per principianti 18/100
SKaiNET-developers/SKaiNET#1330 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue size:s skill:docs sub-issue
Difficoltà 3/5 1-2 giorni Idoneità per principianti 78/100
SKaiNET-developers/SKaiNET#1329 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di SKaiNET-developers/SKaiNET
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
Kotlin/kotlin-lsp#288 ·
-
afk-ok area:data-quality importer size:S
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
enorm-labs/event-junkie#3166 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
rajpreetcodes/Skills_MCP_Server#25 ·
I maintainer di solito rispondono entro 1 giorno
-
bugbane/qf good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
osservatorionessuno/bugbane#173 ·
I maintainer di solito rispondono entro 1 giorno
-
Android: build fails with Android Gradle Plugin 9 (kotlinOptions, lintOptions, proguard-android.txt)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
capacitor-community/stripe#544 ·
I maintainer di solito rispondono entro 1 giorno