Repository navigation
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
With
sampling=True,fitreplaces the training array with the sampled basis before computingdecision_scores_,labels_and the threshold. These arrays therefore contain only the subset, and the threshold is calibrated on the basis rather than the training population. Even sampling all rows leaves the stored scores in random draw order.For example:
Before:
(30,) 238. After:(300,) 30, consistent with the default contamination of 0.1.Keep the original training array, fit the kernel PCA basis on the subset, and compute the centered reconstruction error for every original row. The sampled basis and query
decision_functionremain unchanged. The non-sampling path keeps its existing calculations.The new regression compares linear and RBF scores against an independent centered-kernel eigendecomposition, covering integer, fractional and full-size subsets. All six cases fail before the fix and pass after it. All 21 KPCA tests pass, with 100% statement coverage of
pyod/models/kpca.py.A separate check on sklearn's Digits, Wine and Iris datasets covers 36 configurations, including non-sampling controls, serialization and refits. All training arrays now align with the input rows; maximum training-score error against the independent reference is below 1e-12. Every fitted basis and raw query-score array is identical before/after, as are the non-sampling training scores. This validates calibration and row alignment, not detection quality.
Submission checks
development.