squlearn

scikit-learn interface for quantum algorithms

https://github.com/squlearn/squlearn

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    3 of 9 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.1%) to scientific vocabulary

Keywords

machine-learning python quantum quantum-computing quantum-machine-learning scikit-learn
Last synced: 6 months ago · JSON representation ·

Repository

scikit-learn interface for quantum algorithms

Basic Info
  • Host: GitHub
  • Owner: sQUlearn
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Homepage: https://squlearn.github.io
  • Size: 15.8 MB
Statistics
  • Stars: 88
  • Watchers: 7
  • Forks: 21
  • Open Issues: 28
  • Releases: 20
Topics
machine-learning python quantum quantum-computing quantum-machine-learning scikit-learn
Created almost 3 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

sQUlearn

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 tool set 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, QNNs and quantum reservoir computing. 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 of the PennyLane, Qiskit and Qulacs frameworks.

sQUlearn schematic


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 contributing to sQUlearn! Please read our contribution guidelines before you submit a pull request.


License

sQUlearn is released under the Apache License 2.0

Cite sQUlearn

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

Kreplin, D. A., Willmann, M., Schnabel, J., Rapp, F., Hagelüken, M., & Roth, M. (2025). sQUlearn: A Python Library for Quantum Machine Learning. IEEE Software, 42(5), 65–72. https://doi.org/10.1109/MS.2025.3527736

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

For general questions regarding sQUlearn, use the GitHub Discussions or feel free to contact 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).


Owner

  • Name: sQUlearn
  • Login: sQUlearn
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as follows."
title: sQUlearn
authors:
  - family-names: sQUlearn Contributors
url: https://squlearn.github.io
license: Apache-2.0
repository-code: https://github.com/sQUlearn/squlearn
preferred-citation:
  type: article
  title: "sQUlearn: A Python Library for Quantum Machine Learning"
  authors:
    - family-names: Kreplin
      given-names: David A.
      orcid: https://orcid.org/0000-0002-8129-6864
      affiliation: Fraunhofer Institute for Manufacturing Engineering and Automation IPA
    - family-names: Willmann
      given-names: Moritz
      orcid: https://orcid.org/0009-0000-8099-425X
      affiliation: Fraunhofer Institute for Manufacturing Engineering and Automation IPA
    - family-names: Schnabel
      given-names: Jan
      orcid: https://orcid.org/0000-0003-3485-0479
      affiliation: Fraunhofer Institute for Manufacturing Engineering and Automation IPA
    - family-names: Rapp
      given-names: Frederic
      orcid: https://orcid.org/0009-0008-6240-8390
      affiliation: Fraunhofer Institute for Manufacturing Engineering and Automation IPA
    - family-names: Hagelüken
      given-names: Manuel
      orcid: https://orcid.org/0009-0007-9852-3190
      affilliation: Fraunhofer Institute for Manufacturing Engineering and Automation IPA
    - family-names: Roth
      given-names: Marco
      orcid: https://orcid.org/0000-0002-1276-5655
      affiliation: Fraunhofer Institute for Manufacturing Engineering and Automation IPA
  journal: "IEEE Software"
  start: 65
  end: 72
  issue: 5
  volume: 42
  year: 2025
  month: 1
  doi: 10.1109/MS.2025.3527736
  url: https://ieeexplore.ieee.org/document/10841386

GitHub Events

Total
  • Create event: 2
  • Release event: 2
  • Issues event: 20
  • Watch event: 29
  • Issue comment event: 35
  • Push event: 37
  • Pull request review event: 61
  • Pull request review comment event: 53
  • Pull request event: 65
  • Fork event: 3
Last Year
  • Create event: 2
  • Release event: 2
  • Issues event: 20
  • Watch event: 29
  • Issue comment event: 35
  • Push event: 37
  • Pull request review event: 61
  • Pull request review comment event: 53
  • Pull request event: 65
  • Fork event: 3

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 184
  • Total Committers: 9
  • Avg Commits per committer: 20.444
  • Development Distribution Score (DDS): 0.701
Past Year
  • Commits: 184
  • Committers: 9
  • Avg Commits per committer: 20.444
  • Development Distribution Score (DDS): 0.701
Top Committers
Name Email Commits
Moritz 4****n 55
David Kreplin 1****n 48
David Kreplin d****n@i****e 25
rothma m****h@g****m 21
Jan 1****l 13
Moritz m****n@i****e 12
FredericRapp 1****p 8
MHagelueken 1****n 1
Rapp f****p@i****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 71
  • Total pull requests: 193
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 14 days
  • Total issue authors: 17
  • Total pull request authors: 11
  • Average comments per issue: 1.45
  • Average comments per pull request: 0.57
  • Merged pull requests: 173
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 12
  • Pull requests: 61
  • Average time to close issues: 14 days
  • Average time to close pull requests: 17 days
  • Issue authors: 9
  • Pull request authors: 8
  • Average comments per issue: 2.67
  • Average comments per pull request: 0.23
  • Merged pull requests: 45
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • MoritzWillmann (18)
  • David-Kreplin (17)
  • rothma (9)
  • JanSchnabel (5)
  • rupof (4)
  • FredericRapp (3)
  • MeetGandhi (1)
  • dtchang (1)
  • vondrejc (1)
  • MazenAli (1)
  • antonio-pereira2 (1)
  • eburnette (1)
  • DLPQ (1)
  • Gage-Holmen (1)
  • MHagelueken (1)
Pull Request Authors
  • MoritzWillmann (103)
  • David-Kreplin (92)
  • DennisKleinhans (12)
  • rothma (11)
  • MHagelueken (9)
  • rupof (7)
  • FredericRapp (5)
  • JanSchnabel (4)
  • RobertoFlorez (3)
  • ErikWeiss (2)
  • Vofdy (2)
Top Labels
Issue Labels
enhancement (17) bug (12) documentation (6) tests (2)
Pull Request Labels
documentation (7) bug (4) help wanted (3) tests (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 326 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 21
  • Total maintainers: 1
pypi.org: squlearn

A library for quantum machine learning following the scikit-learn standard.

  • Versions: 21
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 326 Last month
Rankings
Dependent packages count: 7.2%
Forks count: 12.7%
Downloads: 16.0%
Stargazers count: 16.7%
Average: 18.8%
Dependent repos count: 41.2%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/doc_checks.yml actions
  • actions/checkout v2 composite
  • sQUlearn/sphinx-action master composite
  • styfle/cancel-workflow-action 0.11.0 composite
.github/workflows/format.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • styfle/cancel-workflow-action 0.11.0 composite
.github/workflows/publish.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/publish_docs.yml actions
  • actions/checkout v2 composite
  • ad-m/github-push-action master composite
  • sQUlearn/sphinx-action master composite
docs/requirements.txt pypi
  • ipython *
  • matplotlib *
  • myst-parser *
  • nbsphinx *
  • nbsphinx_link *
  • pylatexenc *
  • sphinx *
  • sphinx-rtd-theme *
  • sphinxcontrib-spelling *
pyproject.toml pypi
  • dill >=0.3
  • numpy >=1.17
  • qiskit >=0.42.1
  • qiskit-aer >=0.12.0
  • qiskit-ibm-runtime >=0.9
  • qiskit-machine-learning >=0.6.0
  • scikit-learn >=1.0
  • scipy >=1.5