[Lane 1 · numerics] Precision/Recall/F1 — averaging-mode and zero-division conventions
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- Medio día
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Documentación
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- python, pytorch, scikit-learn
- Área
- ai, machine-learning
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Kotlin
- Estrellas
- 52
- Forks
- 15
- Merge medio
- 1 d 15 h
- PR fusionados (30 d)
- 36
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de SKaiNET-developers/SKaiNET
-
coding good first issue size:xs skill:kotlin-core sub-issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
SKaiNET-developers/SKaiNET#1323 ·
Los mantenedores suelen responder en 1 día
-
coding good first issue platform size:xs skill:js sub-issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
SKaiNET-developers/SKaiNET#1232 ·
Los mantenedores suelen responder en 1 día
-
skeep tracking
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
SKaiNET-developers/SKaiNET#1331 ·
Los mantenedores suelen responder en 1 día
-
assessment size:s skill:review sub-issue
Dificultad 4/5 1-2 días Aptitud para principiantes 18/100
SKaiNET-developers/SKaiNET#1330 ·
Los mantenedores suelen responder en 1 día
-
documentation good first issue size:s skill:docs sub-issue
Dificultad 3/5 1-2 días Aptitud para principiantes 78/100
SKaiNET-developers/SKaiNET#1329 ·
Los mantenedores suelen responder en 1 día
Todos los issues de SKaiNET-developers/SKaiNET
Issues similares
-
[Submission] 抖音火山版Abiertosubmit-adaption submit-adaption-pre
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
BetterAndroid/android-notification-icon-project#744 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
utopia-rise/godot-jvm#1004 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
pedroSG94/RootEncoder#2213 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
[Feature]: AC charger voltageAbiertoenhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
dzid26/TeslaBatteryBLE#183 ·
Los mantenedores suelen responder en 1 día