Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

[Lane 2 · kotlin-core] Recall metric

Đang mở
#1,228 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
55/100
Loại issue
Tính năng
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
kotlin
Lĩnh vực
machine-learning

Hướng nghiên cứu

First check the dependency on #1226, then read Accuracy.kt and ConfusionMatrixAccumulator. Implement Recall and its factory functions in Recall.kt, and add the listed cases in RecallTest.kt, following AccuracyTest.kt for tensor helpers. Run the specified API dump and JVM tests; done means the public API is included and all six cases pass.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

coding good first issue size:s skill:kotlin-core sub-issue training

Sub-issue of #1222 (Precision, Recall and F1Score metrics).

Lane: 2 · Kotlin core
Skill needed: Kotlin. Read Accuracy.kt and ConfusionMatrixAccumulator first — this task is mostly wiring.
Size: s (~2–3 h)
Blocked by: #1226 (accumulator + Averaging)

What to do

  1. Add public class Recall(averaging: Averaging = Averaging.MACRO, dim: Int = -1, threshold: Float? = null) : Metric
    in skainet-lang/skainet-lang-core/src/commonMain/kotlin/sk/ainet/lang/nn/metrics/Recall.kt:
    • override val name = "recall";
    • update(...) delegates to a private ConfusionMatrixAccumulator(dim, threshold);
    • compute() = reduce(acc.counts(), averaging) { tp, fp, fn -> if (tp + fn == 0L) 0.0 else tp.toDouble() / (tp + fn) };
    • reset() delegates.
      Mirror Accuracy.kt's KDoc style (what the metric means, the dim / threshold semantics, what averaging does).
  2. Add factory functions at the bottom of the file mirroring accuracy() / binaryAccuracy():
    public fun recall(averaging: Averaging = Averaging.MACRO, dim: Int = -1): Metric and
    public fun binaryRecall(threshold: Float = 0.5f): Metric.
  3. Tests in skainet-backends/skainet-backend-cpu/src/commonTest/kotlin/sk/ainet/exec/metrics/RecallTest.kt,
    copying AccuracyTest.kt's tensor helpers. Cover, with hand-computed expected values
    (see the parent issue and #1224 for the reference fixture pred [2,0,1,2], target [2,1,1,0]):
    • macro multi-class with Int32 index targets → 0.5;
    • micro multi-class → 0.5 (and assert it equals Accuracy on the same batch);
    • the same batch with soft (FP32 one-hot) targets gives the same result;
    • binary with threshold, 2-class logits;
    • accumulation across two update() calls equals one call on the concatenated batch;
    • zero-division: a class with TP+FP+FN = 0 contributes 0.0 (per #1224), and
      compute() on a fresh metric returns 0.0.
  4. ./gradlew :skainet-lang:skainet-lang-core:apiDump and
    ./gradlew :skainet-backends:skainet-backend-cpu:jvmTest --tests "sk.ainet.exec.metrics.*".

Acceptance

  • Recall + recall() + binaryRecall() public and in the API dump
  • All six test cases above pass on JVM
  • No duplicated argmax / iteration logic — everything goes through the accumulator
  • PR links this issue and #1222; PR body states "unit tests only; ground-truth wiring tracked in SKEEP-005 (#1223)"

Notes

Recall answers "of what was actually positive, how much did I catch". The twin task #1227 (Precision) is the same shape with tp / (tp + fp) — filed separately so two people can each ship one.

Ngôn ngữ chính
Kotlin
Star
52
Fork
15
Merge trung bình
1 ngày 15 giờ
Pull request đã merge (30 ngày)
36

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của SKaiNET-developers/SKaiNET

Tất cả issue của SKaiNET-developers/SKaiNET

Issue tương tự

Thêm issue về Kotlin

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.