Known Issues & Warnings

This is the central place to track known issues and behavioral notes.

Installation

See Installation for dependency notes. Heavier modalities are optional: install pytorch for neural detectors, torch_geometric for graph detectors, and sentence-transformers / openai / transformers for text and image detection via EmbeddingOD.

Differences between PyOD and scikit-learn

PyOD is built on top of scikit-learn and inspired by its API design, but some conventions differ:

  • Score direction. PyOD uses the convention that outlying samples receive higher scores, while normal samples receive lower scores. scikit-learn uses the inverted convention (lower scores mean more anomalous).

  • Label values. PyOD uses 0 for inliers and 1 for outliers. scikit-learn returns 1 for inliers and -1 for anomalies.

  • Do not mix implementations. Although Isolation Forest, One-Class SVM, and Local Outlier Factor exist in both libraries, mixing PyOD and scikit-learn instances of the same model in a single pipeline is not recommended. Use one library consistently (PyOD’s versions of these three are wrappers around scikit-learn).

  • check_estimator compatibility. PyOD models may not pass scikit-learn’s check_estimator, and scikit-learn models may not pass PyOD’s check_estimator. The two validators enforce different contracts.