Flexible NaN-handling
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ó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Start with the ensemble metric implementations and shared helpers in core/utils.py, then follow the weighted Energy Score pattern for vs_ensemble, twvs_ensemble, owvs_ensemble, and vrvs_ensemble. Check how apply_nan_policy_ens_uv, apply_nan_policy_ens_mv, and nan_policy_check handle invalid members and unsupported estimators. Done means the Variogram Score variants support the requested policies with tests for propagation, omission, and errors.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
For ensemble-based scoring rules, we need flexible handling of missing values in ensemble members. Currently, ensemble-based metrics such as the CRPS return NaN if there is one or more NaNs in the ensemble members. It may be the case that users have an ensemble with a few NaNs (e.g. with lagged ensembles you have NaNs for some timestamps) but still want to get a valid score.
Proposed solution
We allow users to specify a nan_policy argument on ensemble metrics:
- propagate (default): return NaN if any ensemble member is NaN
- omit: ignore NaN values during computation
- raise: raise an error if NaN values are encountered
NaN in the observations always propagates, regardless of policy. The omit policy flags every invalid member — any NaN member, and in the multivariate case any member with a NaN variable or weight — and folds it into the ensemble weights as a zero weight, routing the score through the existing weighted estimators (#117). Shared helpers (apply_nan_policy_ens_uv, apply_nan_policy_ens_mv, nan_policy_check) live in core/utils.py.
Status
Done
- CRPS —
crps_ensemble,twcrps_ensemble,owcrps_ensemble,vrcrps_ensemble(#118, merged). - Energy Score —
es_ensemble,twes_ensemble,owes_ensemble,vres_ensemble(#123). First multivariate metric; also fixed two pre-existing bugs in the weighted energy numba kernels (ow = ow[0]scalar indexing, andnp.mean(fw)vsnp.sum(fw * ens_w)normalization).
Remaining
- Variogram Score —
vs_ensemble,twvs_ensemble,owvs_ensemble,vrvs_ensemble. Weighted estimators exist, so it follows the Energy pattern directly. - Gaussian Kernel Score — univariate and multivariate
gks*_ensemble. Weighted estimators exist, but the weighted multivariate numba kernels still carry theow = ow[0]bug fixed for Energy (core/kernels/_gufuncs_w.py:250,:277); needs fixing before the omit path runs on numba.
Not planned
- Dawid–Sebastiani (
dssuv_ensemble,dssmv_ensemble) — computed from mean/covariance, no weighted estimator to route through. - Log Score (
logs_ensemble,clogs_ensemble) — kernel-density estimates, omit semantics not well defined.
Note: omit is not implemented for estimators that cannot be expressed through member weighting (CRPS int/akr/akr_circperm, Energy akr/akr_circperm); these raise NotImplementedError.
- Ngôn ngữ chính
- Python
- Star
- 108
- Fork
- 15
- Merge trung bình
- 1 giờ 42 phút
- Pull request đã merge (30 ngày)
- 9
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của frazane/scoringrules
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
frazane/scoringrules#164 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
frazane/scoringrules#163 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
backend:torch bug documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
frazane/scoringrules#146 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Bugs in the legacy TorchBackendCó thể đã có người làm @frazane đã nhận hôm nay. Đang mởbackend:torch bug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 25/100
frazane/scoringrules#147 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 58/100
frazane/scoringrules#145 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của frazane/scoringrules
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
adafruit/Fruit-Jam-OS#98 ·
-
python triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
microsoft/semantic-kernel#14753 ·
Maintainer thường phản hồi trong vòng 5 ngày
-
area:cli area:configuration documentation priority:low size:small
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 80/100
RonaldHensbergen/composable-data-stack#1222 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug python
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
pvlib/pvlib-python#2939 ·
Maintainer thường phản hồi trong vòng 1 ngày