Skip to main content

Quantum-enhanced Local Outlier Factor algorithm

Project description

QuantumLOFClassifier (Quantum Local Outlier Factor Classifier)

This package provides a quantum-enhanced version of the Local Outlier Factor (LOF) anomaly detection model, utilizing quantum computing tools such as Qiskit.

📘 Overview

QuantumLOFClassifier is an estimator based on the classical Local Outlier Factor (LOF) method, enhanced with quantum-based k-distance estimation using backends such as simulators or real quantum devices.

Note: Real quantum hardware execution is not yet tested.

  • Quantum circuit execution via Qiskit AerSimulator or IBM Quantum Runtime
  • Classical LOF concepts: k-distance, local reachability density (LRD), and LOF scores
  • Anomaly detection based on a user-defined delta threshold
  • Dual-model architecture: separate classifiers for clean and noisy data

🔍 References

This implementation is inspired by the following paper:

  • Ming-Chao Guo et al., Quantum Algorithm for Unsupervised Anomaly Detection
    • Section II.A: LOF definitions and thresholding (LOF(x) ≥ δ → anomaly)
    • Sections III.A–C: Quantum distance estimation, k-distance, LRD, and LOF calculations

🚀 Example Usage

pip install quantlof
from quantum_lof import QuantumLOFClassifier

clf = QuantumLOFClassifier(
    n_neighbors=20,
    delta=1.5,
    quantum_backend='qiskit_simulator',  # or 'ibm_cairo', etc.
    shots=512,
    random_state=42
)

clf.fit(X_train, y_train)
anomalies = clf.get_anomaly_indices()
y_pred = clf.predict(X_test)
acc_clean, f1_clean, n_clean = clf.score_clean_only(X_test, y_test)

QuantumLOFClassifier – Compliance & Gap Report (vs. Guo 2023)

Last updated: 2025‑06‑04


1  Executive summary (English)

The current QuantumLOFClassifier implementation partially follows the pipeline proposed in Guo et al., “Quantum Algorithm for Unsupervised Anomaly Detection” (arXiv 2304.08710, 2023).

  • What is really quantum?  Only the pair‑wise distance estimation is executed on a quantum backend via a Hadamard‑test circuit.
  • Where does it comply?  It respects Sec. III‑A Eq.(13–17) for turning an inner product into an Euclidean distance, and keeps the LOF formula (Sec. III‑B/C).
  • Where does it diverge?  Every block that yields exponential‐speed‑up in the paper (QRAM, Quantum Minimum Search, Quantum Multiply‑Adder, amplitude estimation–based LOF, Grover‑style anomaly extraction) is replaced by classical code.

Overall, the code is a hybrid proof‑of‑concept rather than a strict end‑to‑end quantum algorithm.


2  Quantum sub‑modules & level of compliance

Paper section Purpose Implemented? Comment
III‑A Eq.(13–14) Amplitude embedding of input vector Partial Uses StatePreparation; cost becomes exponential instead of ≈O(d).
III‑A Fig. 3 Hadamard test for ⟨x|y⟩ Yes Circuit generated with ancilla‑controlled Uy.
III‑A Eq.(15–17) d(x,y)=√(2−2⟨x|y⟩) Yes Exact formula applied.
III‑A Step 1.6–1.7 Quantum Minimum Search (Grover) No Replaced by Python sort.
III‑B Quantum multiply‑adder & average (LRD) No Classical loops.
III‑C Eq.(18) Quantum LOF computation No Classical ratio/mean.
Eq.(2) & (28) Grover anomaly extraction No Classical thresholding.

3  Major divergences & limitations

  1. Absence of QRAM  The paper assumes a QRAM oracle OX; Qiskit/NISQ hardware do not provide this.
  2. Quantum Minimum Search skipped  Sorting is done on CPU, losing the √m quantum speed‑up.
  3. Quantum average / inverse missing  LRD & LOF are computed classically.
  4. High circuit cost for StatePreparation  StatePreparation scales as O(2^n) gates, conflicting with the paper’s low‑depth assumption.
  5. No amplitude‑estimation error control  Theoretical bounds (ε₁,ε₂,ε₃) are not implemented.
  6. Fallback to classical path for n>100  The paper does not define such fallback; added for practicality.

4  Practical recommendations

  • Keep the current design for real datasets; full quantum blocks are unrealistic on today’s hardware.
  • For small toy examples (<4 samples, <4 features) a pedagogical prototype of Quantum Minimum Search could be coded, but will not scale.
  • Document clearly that the library is “quantum‑inspired” with a single quantum subroutine.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quantlof-0.1.2.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quantlof-0.1.2-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file quantlof-0.1.2.tar.gz.

File metadata

  • Download URL: quantlof-0.1.2.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for quantlof-0.1.2.tar.gz
Algorithm Hash digest
SHA256 ce71cf9cb91329838b245d2dc4222c7b93516ab518628b17dd4cc82a06f978cd
MD5 9d005947d2b9a92f051b0ff83e768f47
BLAKE2b-256 a9ea24456848c9731125ffd70f75764bdeac8119bff9bad8193d07ac8a91db46

See more details on using hashes here.

File details

Details for the file quantlof-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: quantlof-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for quantlof-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 607d686f46a7adcb405651801f05ddaf28ddb387909b679e7f47081f6d96fb47
MD5 f20b5777f03ec17a1777ad777e60e6fa
BLAKE2b-256 6345854c63ac6eb80dbbfb2a4629b35282f971afa5b7e2a733d2a9f86e7345dd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page