<img alt="selannel" width="350" src="https://github.com/feichtip/selanneal/blob/main/docs/_images/selanneal.png?raw=true"/>
Optimising selections with simulated annealing
==============================================
Selanneal is a simple package for optimising multivariate selections via a figure of merit.
The optimisation is performed for all given features simultaneously by utilising the simulated annealing method.
It relies on [numba](http://numba.pydata.org/) for just-in-time compilation of the algorithm.
The procedure works on binned data, so an n-dimensional histogram needs to be provided.
Currently, two modes of operation exist:
* **edges**: cut only the edges of each feature (results in "rectangular cuts")
* **bins**: select individual bins from a grid (for now limited to 2 feature dimensions)
This package was written for applications in high energy physics but can apply to general problems in statistical data analysis.
## usage
* install with
```console
python3 -m pip install selanneal
```
* tutorial notebooks for basic usage in *examples*
* training data is to be provided as numpy arrays representing the histogrammed number of signal and background events
* hyper-parameters to tune the optimisation: Tmin, Tmax, steps
* the default figure of merit is N_sig/sqrt(N_sig + N_bkg), but any objective function can be used
* additionally, a ROC curve can be obtained by maximising the purity for fixed signal efficiencies
Raw data
{
"_id": null,
"home_page": "https://github.com/feichtip/selanneal",
"name": "selanneal",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "hep physics cut selection optimisation annealing",
"author": "Paul Feichtinger",
"author_email": "paul.feichtinger@oeaw.ac.at",
"download_url": "https://files.pythonhosted.org/packages/95/d3/7f9edbacf0ecc63139176468a7b4d867d14bcde2f20b15feaa39eabaec9b/selanneal-0.0.4.tar.gz",
"platform": null,
"description": "<img alt=\"selannel\" width=\"350\" src=\"https://github.com/feichtip/selanneal/blob/main/docs/_images/selanneal.png?raw=true\"/>\n\nOptimising selections with simulated annealing\n==============================================\n\nSelanneal is a simple package for optimising multivariate selections via a figure of merit.\nThe optimisation is performed for all given features simultaneously by utilising the simulated annealing method.\nIt relies on [numba](http://numba.pydata.org/) for just-in-time compilation of the algorithm.\nThe procedure works on binned data, so an n-dimensional histogram needs to be provided.\n\nCurrently, two modes of operation exist:\n* **edges**: cut only the edges of each feature (results in \"rectangular cuts\")\n* **bins**: select individual bins from a grid (for now limited to 2 feature dimensions)\n\nThis package was written for applications in high energy physics but can apply to general problems in statistical data analysis.\n\n## usage\n\n* install with\n```console\npython3 -m pip install selanneal\n```\n* tutorial notebooks for basic usage in *examples*\n* training data is to be provided as numpy arrays representing the histogrammed number of signal and background events\n* hyper-parameters to tune the optimisation: Tmin, Tmax, steps\n* the default figure of merit is N_sig/sqrt(N_sig + N_bkg), but any objective function can be used\n* additionally, a ROC curve can be obtained by maximising the purity for fixed signal efficiencies\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "multidimensional selection optimisation with simulated annealing",
"version": "0.0.4",
"project_urls": {
"Homepage": "https://github.com/feichtip/selanneal",
"Source": "https://github.com/feichtip/selanneal",
"Tracker": "https://github.com/feichtip/selanneal/issues"
},
"split_keywords": [
"hep",
"physics",
"cut",
"selection",
"optimisation",
"annealing"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "996ae04d94fad3fc563642384056799b1f127d09b93fb13cb62eb4905e13731d",
"md5": "049ee713848138b507c9fa6a65959a41",
"sha256": "8775c990a4397afe522cf785e3ed897561a30b21fb083b68b72359e7781a89a7"
},
"downloads": -1,
"filename": "selanneal-0.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "049ee713848138b507c9fa6a65959a41",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 12618,
"upload_time": "2024-12-02T13:24:17",
"upload_time_iso_8601": "2024-12-02T13:24:17.594080Z",
"url": "https://files.pythonhosted.org/packages/99/6a/e04d94fad3fc563642384056799b1f127d09b93fb13cb62eb4905e13731d/selanneal-0.0.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "95d37f9edbacf0ecc63139176468a7b4d867d14bcde2f20b15feaa39eabaec9b",
"md5": "bab3b675df072b09f8e8d05254393e84",
"sha256": "8911195522edc0b2e90920226360a74f2aacd3647a92d5f91be3415b56cc1f29"
},
"downloads": -1,
"filename": "selanneal-0.0.4.tar.gz",
"has_sig": false,
"md5_digest": "bab3b675df072b09f8e8d05254393e84",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 108892,
"upload_time": "2024-12-02T13:24:19",
"upload_time_iso_8601": "2024-12-02T13:24:19.604753Z",
"url": "https://files.pythonhosted.org/packages/95/d3/7f9edbacf0ecc63139176468a7b4d867d14bcde2f20b15feaa39eabaec9b/selanneal-0.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-02 13:24:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "feichtip",
"github_project": "selanneal",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "selanneal"
}