Skip to content

PyOD v3.6.1

Latest

Choose a tag to compare

@yzhao062 yzhao062 released this 17 Jun 02:43
d9db50a

PyOD v3.6.1

Maintenance and contributor release since v3.6.0. No breaking API changes; buildable detector count unchanged at 61.

Highlights

  • PyThresh v1 support (#684, @KulikDM): the pyod.models.thresholds wrappers and the BaseDetector threshold path now use the PyThresh v1 API (.fit() / .labels_ / .predict() instead of .eval()); the dependency pin moves to pythresh>=1.0.0.
  • EmbeddingOD air-gapped and pre-instantiated encoder support (#696, @sunnyguntuka): pass a pre-loaded SentenceTransformer instance directly as the encoder, or a local filesystem path loaded with local_files_only=True (no Hub call) for offline use. Also fixes a resolver-order bug where a SentenceTransformer instance was wrapped as a CallableEncoder (calling model(X) instead of model.encode(X)).
  • DataFrame feature-name warning fix (#692, @ugbotueferhire; closes #540): GMM, IForest, LOF, and OCSVM now run check_array inside decision_function, so scoring a pandas DataFrame after fitting no longer emits the scikit-learn feature-name UserWarning. The predict / predict_proba / predict_confidence paths route through decision_function, so the single fix covers them.
  • Audio docs: AudioAE and the audio modality are now in the README and docs algorithm tables, with a new pyod.models.audio API page (v3.6.0 shipped AudioAE without a table row).

Internal

  • Regression tests for the DataFrame-warning fix (GMM / OCSVM / LOF) and a no-download EmbeddingOD resolver test using SentenceTransformer(modules=[]).
  • PyPI download figure refreshed to 46M+.
  • Reviewed via Codex gatekeeper review: #696 and #692 merged after dual review, with the flagged test gaps closed in a follow-up.

Full changelog: v3.6.0...v3.6.1