Compute the sleep robust-z scales once per night, not per epoch - #31
Merged
Conversation
cardioStager scored three fixed samples with robustZ inside the classify loop, so each epoch re-sorted them to re-derive the same median and MAD. Hoisted to a RobustScale built once; robustZ now delegates to it. Output is unchanged — same stages, deep flags and confidence on an 8-hour synthetic night. 765 ms -> 408 ms per run.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthrough
ChangesCached Robust Scaling
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
cardioStagerscored three fixed samples (sleepRmssd,sleepLfhf,sleepRk) withrobustZinside the per-epoch classify loop. Each callre-derived the same median and MAD, sorting the sample twice — about 2,880
times over a night, on lists that never change inside the loop.
Hoisted to a
RobustScalebuilt once after the samples are assembled.robustZnow delegates to it, so the null semantics are shared rather thanduplicated: absent for a sample under two values or a MAD of zero.
Output is unchanged. Verified by running both versions over an 8-hour
synthetic night and comparing the stage sequence, deep flags and confidence —
identical. 765 ms -> 408 ms per run.
Tests: 383 pass.
Summary by CodeRabbit