feat(stats): one statistics module on scipy, statsmodels and scikit-learn; engineered features tied to the annotations

openultrasast.stats: Wilson intervals (statsmodels), exact McNemar, a
repository-clustered percentile bootstrap and its paired form with one
quantile convention, grouped folds (GroupKFold, leave-one-group-out), and
per-column separation (ROC AUC) for the leak audit and the signal screen.
Checked against the benchmark scorer's Wilson and the learn harness's
McNemar. hunt/features.py turns the feature table into the engineered
frame (distances, counts, flags) and keeps the map from every engineered
feature to the annotation the model is shown, so an ablation mask drops
both, and screen() says which annotation carries signal before a model
call is spent. The [hunt] extra now carries the libraries; the core
install is unchanged. The learn harness's own copies stay until that line
is revived.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
Marius Ciepluch
2026-10-13 12:43:02 +02:00
co-authored by Claude Fable 5.1
parent d9d6335ab3
commit c95b9241d8
5 changed files with 521 additions and 1 deletions
+7 -1
View File
@@ -14,7 +14,13 @@ dependencies = ["pyyaml>=6.0"]
[project.optional-dependencies]
# Hunter learning research only; the core install stays PyYAML.
hunt = ["dspy>=3.4,<3.5", "pandas>=2.2,<3"]
hunt = [
"dspy>=3.4,<3.5",
"pandas>=2.2,<3",
"scipy>=1.13,<2",
"scikit-learn>=1.6,<2",
"statsmodels>=0.14,<1",
]
# The documentation site (mkdocs.yml, docs/). Mermaid renders client-side through Material's superfences fence.
docs = [
"mkdocs>=1.6,<2",