https://github.com/wwu-mmll/photonai

PHOTONAI is a high level python API for designing and optimizing machine learning pipelines.

https://github.com/wwu-mmll/photonai

Science Score: 54.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: plos.org
  • Committers with academic emails
    9 of 28 committers (32.1%) from academic institutions
  • Institutional organization owner
    Organization wwu-mmll has institutional domain (photon.uni-muenster.de)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.8%) to scientific vocabulary

Keywords from Contributors

closember datalad
Last synced: 6 months ago · JSON representation

Repository

PHOTONAI is a high level python API for designing and optimizing machine learning pipelines.

Basic Info
  • Host: GitHub
  • Owner: wwu-mmll
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Homepage: https://photon-ai.com/
  • Size: 13 MB
Statistics
  • Stars: 77
  • Watchers: 5
  • Forks: 17
  • Open Issues: 9
  • Releases: 10
Created about 8 years ago · Last pushed 9 months ago
Metadata Files
Readme License

README.md

PHOTON LOGO

GitHub Workflow Status Coverage Status Github Contributors Github Commits PyPI Version License Twitter URL

PHOTONAI is a high level python API for designing and optimizing machine learning pipelines.

We've created a system in which you can easily select and combine both pre-processing and learning algorithms from state-of-the-art machine learning toolboxes, and arrange them in simple or parallel pipeline data streams.

In addition, you can parametrize your training and testing workflow choosing cross-validation schemes, performance metrics and hyperparameter optimization metrics from a list of pre-registered options.

Importantly, you can integrate custom solutions into your data processing pipeline, but also for any part of the model training and evaluation process including custom hyperparameter optimization strategies.

For a detailed description, visit our website and read the documentation

or you can read our paper in PLOS ONE


Getting Started

In order to use PHOTONAI you only need to have your favourite Python IDE ready. Then install the latest stable version simply via pip ``` pip install photonai

Or try out the latest features if you don't rely on a stable version, using:

pip install --upgrade git+https://github.com/wwu-mmll/photonai.git@develop ```

You can setup a full stack machine learning pipeline in a few lines of code:

```python from sklearn.datasets import loadbreastcancer from sklearn.model_selection import KFold

from photonai import Hyperpipe, PipelineElement, FloatRange, Categorical, IntegerRange

DESIGN YOUR PIPELINE

mypipe = Hyperpipe('basicsvmpipe', # the name of your pipeline # which optimizer PHOTONAI shall use optimizer='skopt', optimizerparams={'nconfigurations': 25}, # the performance metrics of your interest metrics=['accuracy', 'precision', 'recall', 'balancedaccuracy'], # after hyperparameter optimization, this metric declares the winner config bestconfigmetric='accuracy', # repeat hyperparameter optimization three times outercv=KFold(nsplits=3), # test each configuration five times respectively, innercv=KFold(nsplits=5), verbosity=1, projectfolder='./tmp/')

first normalize all features

my_pipe.add(PipelineElement('StandardScaler'))

then do feature selection using a PCA

mypipe += PipelineElement('PCA', hyperparameters={'ncomponents': IntegerRange(5, 20)}, test_disabled=True)

engage and optimize the good old SVM for Classification

my_pipe += PipelineElement('SVC', hyperparameters={'kernel': Categorical(['rbf', 'linear']), 'C': FloatRange(0.5, 2)}, gamma='scale')

train pipeline

X, y = loadbreastcancer(returnXy=True) my_pipe.fit(X, y)

```

Features

Easy access to established ML implementations

We pre-registered diverse preprocessing and learning algorithms from state-of-the-art toolboxes e.g. scikit-learn, keras and imbalanced learn to rapidly build custom pipelines

Hyperparameter Optimization

With PHOTONAI you can seamlessly switch between diverse hyperparameter optimization strategies, such as (random) grid-search or bayesian optimization (scikit-optimize, smac3).

Extended ML Pipeline

You can build custom sequences of processing and learning algorithms with a simple syntax. PHOTONAI offers extended pipeline functionality such as parallel sequences, custom callbacks in-between pipeline elements, AND- and OR- Operations, as well as the possibility to flexibly position data augmentation, class balancing or learning algorithms anywhere in the pipeline.

Model Sharing

PHOTONAI provides a standardized format for sharing and loading optimized pipelines across platforms with only one line of code.

Automation

While you concentrate on selecting appropriate processing steps, learning algorithms, hyperparameters and training parameters, PHOTONAI automates the nested cross-validated optimization and evaluation loop for any custom pipeline.

Results Visualization

PHOTONAI comes with extensive logging of all information in the training, testing and hyperparameter optimization process. In addition, optimum performances and the hyperparameter optimization progress are visualized in the PHOTONAI Explorer.

For more use cases, examples, contribution guidelines and API details visit our website

www.photon-ai.com

Owner

  • Name: Medical Machine Learning Lab - University of Münster
  • Login: wwu-mmll
  • Kind: organization
  • Location: Münster, Germany

Machine Learning team at University of Münster, Institute for Translational Psychiatry

GitHub Events

Total
  • Create event: 15
  • Release event: 2
  • Issues event: 6
  • Watch event: 7
  • Delete event: 13
  • Member event: 2
  • Issue comment event: 49
  • Push event: 29
  • Pull request review event: 4
  • Pull request event: 40
  • Fork event: 2
Last Year
  • Create event: 15
  • Release event: 2
  • Issues event: 6
  • Watch event: 7
  • Delete event: 13
  • Member event: 2
  • Issue comment event: 49
  • Push event: 29
  • Pull request review event: 4
  • Pull request event: 40
  • Fork event: 2

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 1,511
  • Total Committers: 28
  • Avg Commits per committer: 53.964
  • Development Distribution Score (DDS): 0.576
Past Year
  • Commits: 52
  • Committers: 5
  • Avg Commits per committer: 10.4
  • Development Distribution Score (DDS): 0.481
Top Committers
Name Email Commits
Nils n****r@g****m 641
Ramona Leenings l****s@u****e 313
Ramona Leenings k****t@r****m 222
lucasplagwitz l****s@p****e 61
Kelvin Sarink k****k@u****e 56
Lucas Plagwitz l****z@s****e 46
Jan Ernsting j****g@u****e 41
Tim T****4@g****m 26
Claas Kaehler c****r@w****e 19
Claas Kaehler c****r@a****e 19
TimHahn T****4@g****m 18
Kelvin Sarink 2****k 7
Nils Winter n****1@g****m 7
LeonardGustavo v****1@u****e 6
julblanke j****6@w****e 5
Claas Kaehler c****r@u****e 4
Ramona Leenings 4****s 3
tim T****n@g****t 2
LeonKV l****0@g****m 2
Lucas Plagwitz l****z@u****e 2
Aayush Grover A****r@i****g 2
Daniel Emden d****n@a****e 2
Claas Kähler c****r@a****e 2
Lukas l****5@g****m 1
Marius Kühnemund m****1@u****e 1
dominik d****d@u****e 1
Tim H****n@p****e 1
Lukas l****7@w****e 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 16
  • Total pull requests: 92
  • Average time to close issues: almost 2 years
  • Average time to close pull requests: 30 days
  • Total issue authors: 14
  • Total pull request authors: 11
  • Average comments per issue: 1.44
  • Average comments per pull request: 1.34
  • Merged pull requests: 66
  • Bot issues: 0
  • Bot pull requests: 14
Past Year
  • Issues: 3
  • Pull requests: 22
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 days
  • Issue authors: 2
  • Pull request authors: 5
  • Average comments per issue: 0.0
  • Average comments per pull request: 1.55
  • Merged pull requests: 13
  • Bot issues: 0
  • Bot pull requests: 7
Top Authors
Issue Authors
  • Paul-B98 (2)
  • brosscle (2)
  • jernsting (2)
  • blemasso (1)
  • cjfcsjt (1)
  • wslj1993 (1)
  • michaelkalz (1)
  • bcottman (1)
  • SereDef (1)
  • impredicative (1)
  • skykery (1)
  • ljollans (1)
  • julblanke (1)
  • MSchmitt-git (1)
Pull Request Authors
  • jernsting (32)
  • dependabot[bot] (22)
  • lucasplagwitz (13)
  • ksarink (12)
  • RLeenings (11)
  • NilsWinter (6)
  • janjsch (3)
  • Paul-B98 (2)
  • julblanke (2)
  • bcottman (2)
  • Elleaume (2)
Top Labels
Issue Labels
enhancement (1) bug (1) question (1)
Pull Request Labels
dependencies (22) python (18) bug (4) github_actions (4) enhancement (3)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 232 last-month
  • Total dependent packages: 3
  • Total dependent repositories: 5
  • Total versions: 10
  • Total maintainers: 3
pypi.org: photonai

PHOTONAI is a high level python API for designing and optimizing machine learning pipelines.

  • Versions: 10
  • Dependent Packages: 3
  • Dependent Repositories: 5
  • Downloads: 232 Last month
Rankings
Dependent packages count: 2.4%
Dependent repos count: 6.6%
Stargazers count: 8.1%
Average: 8.6%
Forks count: 9.6%
Downloads: 16.3%
Maintainers (3)
Last synced: 7 months ago

Dependencies

documentation/mkdocs_requirements.txt pypi
  • mkdocs *
  • mkdocs-macros-plugin *
  • mkdocs-material *
  • mkdocstrings *
  • pymdown-extensions *
photonai/optimization/nevergrad/requirements.txt pypi
  • nevergrad *
photonai/optimization/smac/requirements.txt pypi
  • emcee *
  • pyDOE *
  • smac >=1.0.0
photonai/requirements.txt pypi
  • dask >=2021.10.0
  • distributed *
  • imbalanced-learn *
  • joblib *
  • matplotlib *
  • numpy *
  • pandas *
  • plotly *
  • prettytable *
  • pymodm *
  • pytest *
  • scikit-learn *
  • scikit-optimize *
  • scipy *
  • seaborn *
  • statsmodels *
  • xlrd *
setup.py pypi
  • dask >=2021.10.0
  • distributed *
  • imbalanced-learn *
  • joblib *
  • matplotlib *
  • numpy *
  • pandas *
  • plotly *
  • prettytable *
  • pymodm *
  • scikit-learn *
  • scikit-optimize *
  • scipy *
  • seaborn *
  • statsmodels *
  • xlrd *
.github/workflows/python-deploy_to_pypi.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/python-test_and_deploy.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • pypa/gh-action-pypi-publish master composite
  • mongo latest docker