Metadata-Version: 2.1
Name: squlearn
Version: 0.6.0
Summary: A library for quantum machine learning following the scikit-learnstandard.
Keywords: quantum,machine learning,qml
Author-email: David Kreplin <david.kreplin@ipa.fraunhofer.de>, Frederic Rapp <frederic.rapp@ipa.fraunhofer.de>, Marco Roth <marco.roth@ipa.fraunhofer.de>, Jan Schnabel <jan.schnabel@ipa.fraunhofer.de>, Moritz Willmann <moritz.willmann@ipa.fraunhofer.de>
Maintainer-email: David Kreplin <david.kreplin@ipa.fraunhofer.de>, Moritz Willmann <moritz.willmann@ipa.fraunhofer.de>
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Requires-Dist: dill>=0.3
Requires-Dist: numpy>=1.17
Requires-Dist: qiskit>=0.43.0
Requires-Dist: qiskit-aer>=0.12.0
Requires-Dist: qiskit-algorithms>=0.3.0
Requires-Dist: qiskit-ibm-runtime>=0.15.1
Requires-Dist: qiskit-machine-learning>=0.6.1
Requires-Dist: scipy>=1.5
Requires-Dist: scikit-learn>=1.0
Requires-Dist: tqdm>=4.0
Requires-Dist: black ; extra == "dev"
Requires-Dist: flit ; extra == "dev"
Requires-Dist: myst-parser ; extra == "dev"
Requires-Dist: nbmake ; extra == "dev"
Requires-Dist: nbsphinx ; extra == "dev"
Requires-Dist: nbsphinx_link ; extra == "dev"
Requires-Dist: pylint ; extra == "dev"
Requires-Dist: pytest ; extra == "dev"
Requires-Dist: sphinx ; extra == "dev"
Requires-Dist: sphinxcontrib-spelling ; extra == "dev"
Requires-Dist: sphinx-rtd-theme ; extra == "dev"
Requires-Dist: jupyter-sphinx ; extra == "dev"
Requires-Dist: jupyter ; extra == "examples"
Requires-Dist: matplotlib>=3.5 ; extra == "examples"
Requires-Dist: mlflow ; extra == "examples"
Requires-Dist: pandas ; extra == "examples"
Requires-Dist: pylatexenc>=2.10 ; extra == "examples"
Requires-Dist: seaborn ; extra == "examples"
Requires-Dist: scikit-optimize ; extra == "examples"
Project-URL: Homepage, https://github.com/sQUlearn/squlearn
Provides-Extra: dev
Provides-Extra: examples

<p align="center">
  <img alt="sQUlearn" src="https://raw.githubusercontent.com/sQUlearn/squlearn/main/docs/_static/logo.png" />
</p>

sQUlearn is a user-friendly, NISQ-ready Python library for quantum machine learning (QML), designed for seamless integration with classical machine learning tools like scikit-learn. The library's dual-layer architecture serves both QML researchers and practitioners, enabling efficient prototyping, experimentation, and pipelining. sQUlearn provides a comprehensive toolset that includes both quantum kernel methods and quantum neural networks, along with features like customizable data encoding strategies, automated execution handling, and specialized kernel regularization techniques. By focusing on NISQ-compatibility and end-to-end automation, sQUlearn aims to bridge the gap between current quantum computing capabilities and practical machine learning applications.

sQUlearn offers scikit-learn compatible high-level interfaces for various kernel methods and QNNs. They build on top of the low-level interfaces of the QNN engine and the quantum kernel engine. The executor is used to run experiments on simulated and real backends in the Qiskit environment.

<p align="center">
  <img width=500px alt="sQUlearn schematic" src="https://raw.githubusercontent.com/sQUlearn/squlearn/main/docs/_static/schematic.png" />
</p>

---

## Prerequisites

The package requires **at least Python 3.9**.
## Install sQUlearn

### Stable Release

To install the stable release version of sQUlearn, run the following command:
```bash
pip install squlearn
```

Alternatively, you can install sQUlearn directly from GitHub via
```bash
pip install git+ssh://git@github.com:sQUlearn/squlearn.git
```

## Examples
There are several more elaborate examples available in the folder ``./examples`` which display the features of this package.
Tutorials for beginners can be found at ``./examples/tutorials``.

To install the required packages, run
```bash
pip install .[examples]
```

## Contribute to sQUlearn
Thanks for considering to contribute to sQUlearn! Please read our [contribution guidelines](https://github.com/sQUlearn/squlearn/blob/main/.github/CONTRIBUTING.md) before you submit a pull request.

---
## License

sQUlearn is released under the [Apache License 2.0](https://github.com/sQUlearn/squlearn/blob/main/LICENSE.txt)

## Cite sQUlearn
If you use sQUlearn in your work, please cite our paper:

> Kreplin, D. A., Willmann, M., Schnabel, J., Rapp, F., & Roth, M. (2023). sQUlearn - A Python Library for Quantum Machine Learning. [https://doi.org/10.48550/arXiv.2311.08990](https://doi.org/10.48550/arXiv.2311.08990)

## Contact
This project is maintained by the quantum computing group at the Fraunhofer Institute for Manufacturing Engineering and Automation IPA.

[http://www.ipa.fraunhofer.de/quantum](http://www.ipa.fraunhofer.de/quantum)

For general questions regarding sQUlearn, use the [GitHub Discussions](https://github.com/sQUlearn/squlearn/discussions) or feel free to contact [sQUlearn@gmail.com](mailto:sQUlearn@gmail.com).

---
## Acknowledgements

This project was supported by the German Federal Ministry
of Economic Affairs and Climate Action through the
projects AutoQML (grant no. 01MQ22002A) and AQUAS
(grant no. 01MQ22003D), as well as the German Federal 
Ministry of Education and Research through the project
H2Giga Degrad-EL3 (grant no. 03HY110D).

---
