Skip to content

Spike: QuantumSVM feature_map=auto (Qmes-style) - #2

Open
Superagentic-AI wants to merge 1 commit into
mainfrom
spike/qmes-feature-map-auto
Open

Superagentic-AI wants to merge 1 commit into
mainfrom
spike/qmes-feature-map-auto

Conversation

@Superagentic-AI

Copy link
Copy Markdown
Contributor

Why

QuantumSVM accuracy depends on the encoding circuit. Exhaustive per-dataset kernel evaluation of every candidate is expensive. Qmes (arXiv:2609.04652) shows classical complexity meta-features can rank encodings with no quantum evaluation at inference time.

This spike adds a practical feature_map="auto" path for SuperQuantX QuantumSVM: recommend a name from our existing registry, optionally via Qmes, otherwise via a local heuristic.

What changed

  • New registry: utils/feature_map_registry.py (ZZFeatureMap, PauliFeatureMap, AmplitudeMap, AngleEncoding, ZFeatureMap) plus Qmes pool mapping (unit, SRx, RY, HERx, RY_CX, ZFM, HD).
  • New selector: utils/feature_map_auto.py with modes auto / qmes / heuristic (classical only; no quantum eval at selection time).
  • QuantumSVM accepts feature_map="auto" or None, stores selected_feature_map_ and feature_map_recommendation_. Manual strings/objects still work.
  • Backends (simulator, PennyLane, Qiskit, Cirq) recognize AngleEncoding and ZFeatureMap.
  • Optional extra: superquantx[qmes] (git install of Qmes + problexity/pandas).
  • Design note: docs/design/qmes-feature-map-auto.md.
  • Unit tests: tests/unit/test_feature_map_auto.py (mocked / no hardware).

How to try

from sklearn.datasets import make_classification
from superquantx.algorithms import QuantumSVM

X, y = make_classification(n_samples=40, n_features=4, n_informative=3, random_state=0)
qsvm = QuantumSVM(backend="simulator", feature_map="auto", shots=100)
qsvm.fit(X, y)
print(qsvm.selected_feature_map_)
print(qsvm.feature_map_recommendation_)

Optional Qmes path:

pip install "superquantx[qmes]"
# or: pip install "git+https://github.com/tungduy1704/Qmes.git"
qsvm = QuantumSVM(backend="simulator", feature_map="auto", auto_feature_map_mode="qmes")

Known gaps

  • Not a full Qmes port: no Qsun encodings, no 4-qubit PCA evaluator loop, no shipped SQX-trained OvO recommender.
  • Mapping is approximate (closest registry analogue, not identical gate schedules).
  • Heuristic quality is unvalidated against Qmes regret metrics.
  • AmplitudeMap remains partial on several backends.
  • Regression auto-selection not wired (QSVM is classification-focused).

References

Add classical auto selection for QuantumSVM encodings. Prefer optional
Qmes when installed; otherwise use a lightweight meta-feature heuristic
mapped onto the SuperQuantX feature-map registry. Manual feature_map
strings remain unchanged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant