Skip to main content

falcondale

PyPI Python CI Documentation License: MIT uv Ruff

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)

Source distribution for falcondale 0.5.0
File Size Uploaded Provenance
falcondale-0.5.0.tar.gz 50.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for falcondale 0.5.0
File Interpreter ABI Platform
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page