Falcondale SDK is an open source project that lowers the barrier for computer scientists and data scientists entering the field of Quantum Machine Learning. Bring a pandas DataFrame and try quantum feature selection, quantum classifiers and quantum clustering with a few lines of code, no quantum computing background or cloud account needed. Everything runs locally on simulators.
Installation
pip install "falcondale[all]"
# or
uv add "falcondale[all]"
The core only depends on numpy, pandas, scikit-learn, scipy and rich. Each family of techniques has its own extra (feature-selection, qml, clustering and tabular for tables with categories, text or dates), so you can install just the one you need, for example pip install "falcondale[clustering]".
Quickstart
from sklearn import datasets
from falcondale import Project
X, y = datasets.load_breast_cancer(return_X_y=True, as_frame=True)
data = X.assign(target=y)
project = Project(data, target="target")
project.profile_dataset() # spot missing values, constant columns, class imbalance...
project.preprocess() # fill gaps and scale features
# Pick the 3 most informative and least redundant features solving a QUBO
features = project.feature_selection(max_cols=3, method="sa")
# How well suited is the data for QML? Which model should go first?
project.assess().report()
# Train a Quantum Support Vector Classifier and compare it with a classical one
model = project.evaluate("qsvc") # or evaluate("auto") for the one recommended by the assessment
baseline = project.evaluate("svc")
print(model.metric("auc"), baseline.metric("auc"))
model.print_report()
model.save("qsvc.pkl")
What is inside
| Task | Methods | Built on |
|---|---|---|
| Data | Encoding of categories, text and dates, imputation of missing values and raw table diagnosis | skrub (tabular) |
| Assessment | QML suitability score and model ranking from Fourier spectra, trainability, circuit depth and classical baselines | scikit-learn, rich |
| Feature selection | sa simulated annealing, sb simulated bifurcation, qaoa, exact |
dimod, dwave-samplers, simulated-bifurcation, Qiskit |
| Classification | qsvc (Qiskit or PennyLane backend), qnn, svc classical baseline |
Qiskit Machine Learning, PennyLane, PyTorch, scikit-learn |
| Clustering | pqc probabilistic quantum clustering, qc Horn and Gottlieb quantum clustering, qkmeans quantum k-means and k-medians |
APQC (pqc), NumPy |
Every model follows the scikit-learn estimator API, so you can also use them in your own pipelines. Run Project.list_options() to see what is available.
Quantum clustering can be fitted on a train split and assign unseen samples with their membership probabilities:
from falcondale.clustering import make_clustering_pipeline
pipeline = make_clustering_pipeline(components=6, random_state=101) # imputation, scaling, PCA, APQC
pipeline.fit(train)
labels, probabilities = pipeline.predict(test), pipeline.predict_proba(test)
Documentation
The official documentation can be found at https://falcondale.readthedocs.io/en/latest/, including explanations of each technique and example notebooks.
Contributing
Contributions are welcome! Check the contributing guide to set up the development environment (uv, ruff, ty, pytest, pre-commit and commitizen) and the open issues for ideas. Please follow our Code of Conduct.
git clone https://github.com/Falcondale/falcondale-sdk.git
cd falcondale-sdk
uv sync --all-extras
uv run pre-commit install --install-hooks
uv run pytest -m "not slow"
Authors
Falcondale SDK is developed and maintained by Falcondale. Get in touch at info@falcondale.pro.
License
This project is licensed under the terms of the MIT license.
Metadata
Release files for falcondale 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| falcondale-0.5.0.tar.gz | 50.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| falcondale-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 106.7 kB
Release files / falcondale-0.5.0.tar.gz
| Download URL | falcondale-0.5.0.tar.gz |
|---|---|
| Size | 50.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6fe82fc3b10fde5e9deea91e43dcc6c4a16ad228d0b0508842deec95278de8e5
|
|
BLAKE2b-256 checksum How to use checksums |
c5296953b52c8a55bf67e944bf404c5855ae6c51d398989f52caf57e543c44f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / falcondale-0.5.0-py3-none-any.whl
| Download URL | falcondale-0.5.0-py3-none-any.whl |
|---|---|
| Size | 56.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
06b61bccc331bf580e9abf7c095e9fe07e66f309a25e32124733be5be17fb641
|
|
BLAKE2b-256 checksum How to use checksums |
4d7ac99df0718e24f4a4a6dd7b9089f92f299090da297e20c8e39aebcb1c87c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for falcondale 0.5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.