github yzhao062/pyod v3.6.6

5 hours ago

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 k for cloning and use contamination to derive the fitted threshold and binary labels. k still controls the radius-scan early stop. #707, fixes #194.
  • Pearson correlation: compute all row pairs in the unweighted pearsonr_mat utility 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_clip as supplied to the constructor so sklearn.clone works, while validating the training value separately. #738.
  • Sampling: retain a fractional subset_size across fits instead of replacing the constructor argument with the first computed sample count. #737.
  • Kernel PCA: forward the requested n_components to 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 skill created its skill directory. Detection checks the executable or user configuration instead. #723, fixes #715.

Documentation and tests

  • Remove the unsupported sample_weight entry from GMM.fit documentation. #741.
  • Describe score_to_label as 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.cff on master, alongside contributor-workflow ignore rules and the todo/ 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

Don't miss a new pyod release

NewReleases is sending notifications on new releases.