PyOD 3.6.6
A maintenance release focused on estimator compatibility, numerical correctness, and documentation. No new detector or dependency is introduced.
Bug fixes
- LOCI: preserve the constructor parameter
kfor cloning and usecontaminationto derive the fitted threshold and binary labels.kstill controls the radius-scan early stop. #707, fixes #194. - Pearson correlation: compute all row pairs in the unweighted
pearsonr_matutility when there are more rows than features; previously some correlations incorrectly remained 1. #731. - Deep-learning base class: return the fitted estimator from
BaseDeepLearningDetector.fit. #740. - VAE: preserve
logvar_clipas supplied to the constructor sosklearn.cloneworks, while validating the training value separately. #738. - Sampling: retain a fractional
subset_sizeacross fits instead of replacing the constructor argument with the first computed sample count. #737. - Kernel PCA: forward the requested
n_componentsto the underlying estimator. #730. - KNN: allow supported brute-force metrics such as cosine without constructing an incompatible fallback BallTree. #729.
- DeepSVDD: suppress epoch-loss logging when
verbose=0. #735. - CLI: avoid falsely reporting Claude Code as installed merely because
pyod install skillcreated its skill directory. Detection checks the executable or user configuration instead. #723, fixes #715.
Documentation and tests
- Remove the unsupported
sample_weightentry fromGMM.fitdocumentation. #741. - Describe
score_to_labelas returning binary labels, not probabilities. #733. - Repair KNN, LOF, and LUNAR reference links. #732.
- Clarify the ECOD/COPOD relationship. #725, addresses #655.
- Clarify LOCI's early-stop parameter, restore weighted Pearson range assertions, and seed the new rectangular-input regression fixture.
- Add regression coverage for estimator contracts, repeated fits, component forwarding, cosine distance, logging, contamination and rectangular correlations; make CLI detection tests independent of the host's installed executables.
- Retain the repository's existing
CITATION.cffonmaster, alongside contributor-workflow ignore rules and thetodo/drop box.
Behavior notes
LOCI's binary labels now follow the documented contamination-based threshold rather than a fixed k cutoff. Raw LOCI scores for a fixed k are unchanged by this fix; tied scores can still make the labeled fraction differ from the requested contamination.
Kernel PCA scores can change when n_components is specified because the limit is now honored. Sampling refits with a fractional subset_size now use the current training-set size. Previously uncomputed Pearson row pairs now receive their actual correlation values.
The ROD duplicate-weighting proposal #746 is not included.
Contributors
Thanks to @Mohit-Ak, @VenishPaneliya, @Iams4kura, @busysofa15, @godarrenw, and @dishasharma23-prog.
Full changelog: v3.6.5...v3.6.6