Repository navigation
Portfolio upgrade: evaluation rigor, evidence, and architecture - #1
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c4c0b91c1a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if int(labels.value_counts().min()) < 3: | ||
| raise ValueError("Each class needs at least three rows for stratified train/validation/test splits") |
There was a problem hiding this comment.
Reject splits too small for stratification
This check does not account for the configured partition sizes, so inputs it accepts can still fail during stratification. For example, a 100-row dataset with three minority rows and test_size=0.01 passes this condition, but the first train_test_split receives a one-row test partition and raises because it cannot represent both classes. Validate that each requested partition can support both classes before starting the split so configurable benchmark runs fail with the intended actionable error.
Useful? React with 👍 / 👎.
| completed = subprocess.run( | ||
| ["git", "rev-parse", "HEAD"], | ||
| check=True, |
There was a problem hiding this comment.
Resolve provenance independently of the caller directory
When the installed ios-eval command is invoked from another Git worktree using explicit data/config paths, this subprocess inherits that caller directory and records the unrelated repository's HEAD as git_revision; outside a worktree it records null. Because the report describes this field as the source revision, otherwise successful runs can silently contain false provenance. Resolve it relative to the harness source/build metadata, or omit it unless the current checkout is verified to be this project.
Useful? React with 👍 / 👎.
Summary
This PR completes the portfolio-grade execution and verification pass for
eval-harnesswhile preserving the evidence, architecture, and failure-mode work already on the branch.Engineering changes
src/ios_evalpackagerequirements.txtwith a minimal pinnedpyproject.tomland separate dev/notebook extrasAmountscaling on training data onlyVerification
pip check: passpip-audit: no known vulnerabilitiesruff check .: passruff format --check .: passpytest -q: 32 passedIndependently reproduced benchmark
Public Kaggle
mlg-ulb/creditcardfrauddataset, SHA-25676274b691b16a6c49d3f159c883398e03ccd6d1ee12d9d8ee38f4b4b98551a89:Two full runs matched exactly apart from timestamp/source revision. Full provenance is committed in
results/benchmark.json.Evidence correction
The earlier workflow selected thresholds on final test labels. Its threshold-dependent precision, recall, F1, FP, and FN figures are superseded. Average precision is threshold-independent, but all current operating metrics now use a validation-selected threshold.
These are public-dataset benchmark results—not production performance, fraud-loss prevention, SLA evidence, or client outcomes.
Remaining technical debt