[![PHOTON LOGO](https://www.photon-ai.com/static/img/photon/photon-logo-github.png)](https://www.photon-ai.com/)
[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/wwu-mmll/photonai/PHOTONAI%20test%20and%20test%20deploy)](https://github.com/wwu-mmll/photonai/actions)
[![Coverage Status](https://coveralls.io/repos/github/wwu-mmll/photonai/badge.svg?branch=master)](https://coveralls.io/github/wwu-mmll/photonai?branch=master)
[![Github Contributors](https://img.shields.io/github/contributors-anon/wwu-mmll/photonai?color=blue)](https://github.com/wwu-mmll/photonai/graphs/contributors)
[![Github Commits](https://img.shields.io/github/commit-activity/y/wwu-mmll/photonai)](https://github.com/wwu-mmll/photonai/commits/master)
[![PyPI Version](https://img.shields.io/pypi/v/photonai?color=brightgreen)](https://pypi.org/project/photonai/)
[![License](https://img.shields.io/github/license/wwu-mmll/photonai)](https://github.com/wwu-mmll/photonai/blob/master/LICENSE)
[![Twitter URL](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Ftwitter.com%2Fwwu_mmll)](https://twitter.com/wwu_mmll)
#### 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](https://www.photon-ai.com)__
or you can read our paper in [PLOS ONE](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0254062)
---
## 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 load_breast_cancer
from sklearn.model_selection import KFold
from photonai import Hyperpipe, PipelineElement, FloatRange, Categorical, IntegerRange
# DESIGN YOUR PIPELINE
my_pipe = Hyperpipe('basic_svm_pipe', # the name of your pipeline
# which optimizer PHOTONAI shall use
optimizer='sk_opt',
optimizer_params={'n_configurations': 25},
# the performance metrics of your interest
metrics=['accuracy', 'precision', 'recall', 'balanced_accuracy'],
# after hyperparameter optimization, this metric declares the winner config
best_config_metric='accuracy',
# repeat hyperparameter optimization three times
outer_cv=KFold(n_splits=3),
# test each configuration five times respectively,
inner_cv=KFold(n_splits=5),
verbosity=1,
project_folder='./tmp/')
# first normalize all features
my_pipe.add(PipelineElement('StandardScaler'))
# then do feature selection using a PCA
my_pipe += PipelineElement('PCA',
hyperparameters={'n_components': 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 = load_breast_cancer(return_X_y=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](https://explorer.photon-ai.com).
#### For more use cases, examples, contribution guidelines and API details visit our website
## [www.photon-ai.com](https://www.photon-ai.com)
Raw data
{
"_id": null,
"home_page": "https://www.photon-ai.com/",
"name": "photonai",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "machine learning, pipeline, research, hyperparameter, hyperparameter optimization",
"author": "PHOTONAI Team",
"author_email": "hahnt@wwu.de",
"download_url": "https://files.pythonhosted.org/packages/43/95/e9db0a3c1c48a58bb2c7e43c1fee791426af75568b96882105ac1eb41932/photonai-2.5.0.tar.gz",
"platform": null,
"description": "[![PHOTON LOGO](https://www.photon-ai.com/static/img/photon/photon-logo-github.png)](https://www.photon-ai.com/)\n\n[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/wwu-mmll/photonai/PHOTONAI%20test%20and%20test%20deploy)](https://github.com/wwu-mmll/photonai/actions)\n[![Coverage Status](https://coveralls.io/repos/github/wwu-mmll/photonai/badge.svg?branch=master)](https://coveralls.io/github/wwu-mmll/photonai?branch=master)\n[![Github Contributors](https://img.shields.io/github/contributors-anon/wwu-mmll/photonai?color=blue)](https://github.com/wwu-mmll/photonai/graphs/contributors)\n[![Github Commits](https://img.shields.io/github/commit-activity/y/wwu-mmll/photonai)](https://github.com/wwu-mmll/photonai/commits/master)\n[![PyPI Version](https://img.shields.io/pypi/v/photonai?color=brightgreen)](https://pypi.org/project/photonai/)\n[![License](https://img.shields.io/github/license/wwu-mmll/photonai)](https://github.com/wwu-mmll/photonai/blob/master/LICENSE)\n[![Twitter URL](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Ftwitter.com%2Fwwu_mmll)](https://twitter.com/wwu_mmll)\n\n#### PHOTONAI is a high level python API for designing and optimizing machine learning pipelines.\n\nWe've created a system in which you can easily select and combine both pre-processing and learning algorithms from\nstate-of-the-art machine learning toolboxes,\n and arrange them in simple or parallel pipeline data streams. \n \n In addition, you can parametrize your training and testing\n workflow choosing cross-validation schemes, performance metrics and hyperparameter\n optimization metrics from a list of pre-registered options. \n \n Importantly, you can integrate custom solutions into your data processing pipeline, \n but also for any part of the model training and evaluation process including custom\n hyperparameter optimization strategies. \n\nFor a detailed description, \n__[visit our website and read the documentation](https://www.photon-ai.com)__\n\nor you can read our paper in [PLOS ONE](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0254062)\n\n\n\n---\n## Getting Started\nIn order to use PHOTONAI you only need to have your favourite Python IDE ready.\nThen install the latest stable version simply via pip\n```\npip install photonai\n# Or try out the latest features if you don't rely on a stable version, using:\npip install --upgrade git+https://github.com/wwu-mmll/photonai.git@develop\n```\n\nYou can setup a full stack machine learning pipeline in a few lines of code:\n\n```python\nfrom sklearn.datasets import load_breast_cancer\nfrom sklearn.model_selection import KFold\n\nfrom photonai import Hyperpipe, PipelineElement, FloatRange, Categorical, IntegerRange\n\n# DESIGN YOUR PIPELINE\nmy_pipe = Hyperpipe('basic_svm_pipe', # the name of your pipeline\n # which optimizer PHOTONAI shall use\n optimizer='sk_opt',\n optimizer_params={'n_configurations': 25},\n # the performance metrics of your interest\n metrics=['accuracy', 'precision', 'recall', 'balanced_accuracy'],\n # after hyperparameter optimization, this metric declares the winner config\n best_config_metric='accuracy',\n # repeat hyperparameter optimization three times\n outer_cv=KFold(n_splits=3),\n # test each configuration five times respectively,\n inner_cv=KFold(n_splits=5),\n verbosity=1,\n project_folder='./tmp/')\n\n\n# first normalize all features\nmy_pipe.add(PipelineElement('StandardScaler'))\n\n# then do feature selection using a PCA\nmy_pipe += PipelineElement('PCA', \n hyperparameters={'n_components': IntegerRange(5, 20)}, \n test_disabled=True)\n\n# engage and optimize the good old SVM for Classification\nmy_pipe += PipelineElement('SVC', \n hyperparameters={'kernel': Categorical(['rbf', 'linear']),\n 'C': FloatRange(0.5, 2)}, gamma='scale')\n\n# train pipeline\nX, y = load_breast_cancer(return_X_y=True)\nmy_pipe.fit(X, y)\n```\n---\n## Features\n\n#### Easy access to established ML implementations\nWe pre-registered diverse preprocessing and learning algorithms from \nstate-of-the-art toolboxes e.g. scikit-learn, keras and imbalanced learn to \nrapidly build custom pipelines\n\n#### Hyperparameter Optimization\nWith PHOTONAI you can seamlessly switch between diverse hyperparameter \noptimization strategies, such as (random) grid-search\n or bayesian optimization (scikit-optimize, smac3).\n\n#### Extended ML Pipeline\nYou can build custom sequences of processing and learning algorithms with a simple syntax. \nPHOTONAI offers extended pipeline functionality such as parallel sequences, custom callbacks in-between pipeline \nelements, AND- and OR- Operations, as well as the possibility to flexibly position data augmentation, class balancing\nor learning algorithms anywhere in the pipeline.\n\n#### Model Sharing\nPHOTONAI provides a standardized format for sharing and loading optimized pipelines across \nplatforms with only one line of code.\n\n#### Automation\nWhile you concentrate on selecting appropriate processing steps, learning algorithms, hyperparameters and\ntraining parameters, PHOTONAI automates the nested cross-validated optimization and evaluation loop for any custom pipeline.\n\n#### Results Visualization\nPHOTONAI comes with extensive logging of all information in the training, testing and hyperparameter \noptimization process. In addition, optimum performances and the hyperparameter optimization progress \nare visualized in the [PHOTONAI Explorer](https://explorer.photon-ai.com).\n\n#### For more use cases, examples, contribution guidelines and API details visit our website\n## [www.photon-ai.com](https://www.photon-ai.com)\n\n",
"bugtrack_url": null,
"license": "GPLv3",
"summary": "PHOTONAI is a high level python API for designing and optimizing machine learning pipelines.",
"version": "2.5.0",
"project_urls": {
"Bug Tracker": "https://github.com/wwu-mmll/photonai/issues",
"Documentation": "https://wwu-mmll.github.io/photonai/",
"Download": "https://pypi.org/project/photonai/#files",
"Homepage": "https://www.photon-ai.com/",
"Source Code": "https://github.com/wwu-mmll/photonai/"
},
"split_keywords": [
"machine learning",
" pipeline",
" research",
" hyperparameter",
" hyperparameter optimization"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1b516c48d32bec773f6867f2feb0286e638bd004b98ed2c44094a772f5d3fba6",
"md5": "e1054bb6adc98d9d1778079c8e880e2a",
"sha256": "b97770ac2d991fee11945092ac37fc0156a883b0a2430179e65ba4919e4b1a93"
},
"downloads": -1,
"filename": "photonai-2.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e1054bb6adc98d9d1778079c8e880e2a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 164129,
"upload_time": "2024-11-04T14:00:23",
"upload_time_iso_8601": "2024-11-04T14:00:23.839929Z",
"url": "https://files.pythonhosted.org/packages/1b/51/6c48d32bec773f6867f2feb0286e638bd004b98ed2c44094a772f5d3fba6/photonai-2.5.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4395e9db0a3c1c48a58bb2c7e43c1fee791426af75568b96882105ac1eb41932",
"md5": "42a9cc9231ddc1891feae2fe61ee2214",
"sha256": "6156b66348ed53b381acf4815e9019b22f6a5a0b4b68e41e7bdbcfdd75b4aa75"
},
"downloads": -1,
"filename": "photonai-2.5.0.tar.gz",
"has_sig": false,
"md5_digest": "42a9cc9231ddc1891feae2fe61ee2214",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 911107,
"upload_time": "2024-11-04T14:00:25",
"upload_time_iso_8601": "2024-11-04T14:00:25.949430Z",
"url": "https://files.pythonhosted.org/packages/43/95/e9db0a3c1c48a58bb2c7e43c1fee791426af75568b96882105ac1eb41932/photonai-2.5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-04 14:00:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "wwu-mmll",
"github_project": "photonai",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "numpy",
"specs": []
},
{
"name": "matplotlib",
"specs": []
},
{
"name": "scikit-learn",
"specs": [
[
"==",
"1.5.2"
]
]
},
{
"name": "pandas",
"specs": []
},
{
"name": "plotly",
"specs": []
},
{
"name": "imbalanced-learn",
"specs": [
[
"==",
"0.12.4"
]
]
},
{
"name": "pymodm",
"specs": []
},
{
"name": "scipy",
"specs": []
},
{
"name": "statsmodels",
"specs": []
},
{
"name": "prettytable",
"specs": []
},
{
"name": "seaborn",
"specs": []
},
{
"name": "joblib",
"specs": []
},
{
"name": "dask",
"specs": [
[
">=",
"2021.10.0"
]
]
},
{
"name": "distributed",
"specs": []
},
{
"name": "scikit-optimize",
"specs": []
},
{
"name": "xlrd",
"specs": []
},
{
"name": "pbr",
"specs": []
}
],
"lcname": "photonai"
}