-
Notifications
You must be signed in to change notification settings - Fork 8
Reformat the gaussian conditional sampler #366
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #366 +/- ##
==========================================
- Coverage 98.10% 97.91% -0.20%
==========================================
Files 22 20 -2
Lines 1161 1053 -108
==========================================
- Hits 1139 1031 -108
Misses 22 22 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thx for this refactoring. I have two relatively minor comments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, I agree that having both samplers implemented as classes makes sense.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it limits extra work to integrate the test in this PR rather than having to fix something in an upcoming one. I made a suggestion for the tests.
Co-authored-by: Joseph Paillard <[email protected]>
Co-authored-by: Joseph Paillard <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The PR is almost ready to merge
) | ||
generator.fit(X=X) | ||
X_tilde = generator.sample() | ||
assert X_tilde.shape == (n, p) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds like a smoke test.
Maybe you could add assert np.linalg.norm(X - X_tilde) < np.linalg.norm(X)
(assuming that this test works)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This assertion doesn't work.
For the moment, I don't do the test of functionalities. I just have tests for the coverage.
I don't want to over load the Pull Request.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then np.linalg.norm(X - X_tilde) < np.sqrt(2) * np.linalg.norm(X)
should work
But we need to test that the generated knockoffs are not crazy.
d = np.eye(n) | ||
sigma = u * d * u.T | ||
_s_equi(sigma) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
final assert ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did one test, tell me if it's ok.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, I mean that we should either drop lines 62-67 or add a finall assert.
Co-authored-by: bthirion <[email protected]>
I reformat the Gaussian estimation of knockoff in the format of classes, as conditional sampling.
I moved all the conditional samplers into statistical_tool.