# HROCH
**High-Performance c++ symbolic regression library based on parallel local search**
- Zero hyperparameter tunning.
- Accurate results in seconds or minutes, in contrast to slow GP-based methods.
- Small models size.
- Support for regression, classification and fuzzy math.
- Support 32 and 64 bit floating point arithmetic.
- Work with unprotected version of math operators (log, sqrt, division)
- Speedup search by using feature importances computed from bbox model
|**Supported instructions**||
| ----------- | ----------- |
|**math**|add, sub, mul, div, pdiv, inv, minv, sq2, pow, exp, log, sqrt, cbrt, aq|
|**goniometric**|sin, cos, tan, asin, acos, atan, sinh, cosh, tanh|
|**other**|nop, max, min, abs, floor, ceil, lt, gt, lte, gte|
|**fuzzy**|f_and, f_or, f_xor, f_impl, f_not, f_nand, f_nor, f_nxor, f_nimpl|
## Dependencies
- AVX2 instructions set(all modern CPU support this)
- numpy
- sklearn
- scipy
## Installation
```sh
pip install HROCH
```
## Usage
[Symbolic_Regression_Demo.ipynb](examples/Symbolic_Regression_Demo.ipynb) [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/janoPig/HROCH/blob/main/examples/Symbolic_Regression_Demo.ipynb)
[Documentation](https://janopig.github.io/HROCH/HROCH.html)
```python
from HROCH import SymbolicRegressor
reg = SymbolicRegressor(num_threads=8, time_limit=60.0, problem='math', precision='f64')
reg.fit(X_train, y_train)
yp = reg.predict(X_test)
```
## Changelog
### v1.4
- Sklearn compatibility
- Classificators:
- NonlinearLogisticRegressor for a binary classification
- SymbolicClassifier for multiclass classification
- FuzzyRegressor for a special binary classification
- Xi corelation used for filter unrelated features
### v1.3
- Public c++ sources
- Commanline interface changed to cpython
- Support for classification score logloss and accuracy
- Support for final transformations:
- ordinal regression
- logistic function
- clipping
- Acess to equations from all paralel hillclimbers
- User defined constants
### v1.2
- Features probability as input parameter
- Custom instructions set
- Parallel hilclimbing parameters
### v1.1
- Improved late acceptance hillclimbing
### v1.0
- First release
## SRBench
![image](https://github.com/janoPig/HROCH/assets/75015989/3fa087dc-8caf-4301-86d7-4e79a4e84402)
Raw data
{
"_id": null,
"home_page": "https://github.com/janoPig/HROCH/",
"name": "HROCH",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "scikit-learn, symbolic-regression, classification, fuzzy-logic, interpretable-ml, machine-learning",
"author": "Jano",
"author_email": "hroch.regression@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/a0/84/d2b2983718f966a6420885c5e241032361010460cba865fcea0da2dc7164/hroch-1.4.12.tar.gz",
"platform": null,
"description": "\n# HROCH \n\n**High-Performance c++ symbolic regression library based on parallel local search**\n\n- Zero hyperparameter tunning.\n- Accurate results in seconds or minutes, in contrast to slow GP-based methods.\n- Small models size.\n- Support for regression, classification and fuzzy math.\n- Support 32 and 64 bit floating point arithmetic.\n- Work with unprotected version of math operators (log, sqrt, division)\n- Speedup search by using feature importances computed from bbox model\n\n|**Supported instructions**||\n| ----------- | ----------- |\n|**math**|add, sub, mul, div, pdiv, inv, minv, sq2, pow, exp, log, sqrt, cbrt, aq|\n|**goniometric**|sin, cos, tan, asin, acos, atan, sinh, cosh, tanh|\n|**other**|nop, max, min, abs, floor, ceil, lt, gt, lte, gte|\n|**fuzzy**|f_and, f_or, f_xor, f_impl, f_not, f_nand, f_nor, f_nxor, f_nimpl|\n\n## Dependencies\n\n- AVX2 instructions set(all modern CPU support this)\n- numpy\n- sklearn\n- scipy\n\n## Installation\n\n```sh\npip install HROCH\n```\n\n## Usage\n\n[Symbolic_Regression_Demo.ipynb](examples/Symbolic_Regression_Demo.ipynb) [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/janoPig/HROCH/blob/main/examples/Symbolic_Regression_Demo.ipynb)\n\n[Documentation](https://janopig.github.io/HROCH/HROCH.html)\n\n```python\nfrom HROCH import SymbolicRegressor\n\nreg = SymbolicRegressor(num_threads=8, time_limit=60.0, problem='math', precision='f64')\nreg.fit(X_train, y_train)\nyp = reg.predict(X_test)\n```\n\n## Changelog\n\n### v1.4\n\n- Sklearn compatibility\n- Classificators:\n - NonlinearLogisticRegressor for a binary classification\n - SymbolicClassifier for multiclass classification\n - FuzzyRegressor for a special binary classification\n- Xi corelation used for filter unrelated features\n\n### v1.3\n\n- Public c++ sources\n- Commanline interface changed to cpython\n- Support for classification score logloss and accuracy\n- Support for final transformations:\n - ordinal regression\n - logistic function\n - clipping\n- Acess to equations from all paralel hillclimbers\n- User defined constants\n\n### v1.2\n\n- Features probability as input parameter\n- Custom instructions set\n- Parallel hilclimbing parameters\n \n### v1.1\n\n- Improved late acceptance hillclimbing\n\n### v1.0\n\n- First release\n\n## SRBench\n\n![image](https://github.com/janoPig/HROCH/assets/75015989/3fa087dc-8caf-4301-86d7-4e79a4e84402)\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Symbolic regression and classification",
"version": "1.4.12",
"project_urls": {
"Documentation": "https://janopig.github.io/HROCH/HROCH.html",
"Homepage": "https://github.com/janoPig/HROCH/",
"Source": "https://github.com/janoPig/HROCH",
"Tracker": "https://github.com/janoPig/HROCH/issues"
},
"split_keywords": [
"scikit-learn",
" symbolic-regression",
" classification",
" fuzzy-logic",
" interpretable-ml",
" machine-learning"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ba4b70d399b1cb6301a93a1892e563b392fb64f70b667cc4d7562187051395ca",
"md5": "31015a070b4a52f9506dae1d36a0668a",
"sha256": "f6d3fe40804908bc6535779c82a473e96944c4c0c6e1339bea344763b5f88f68"
},
"downloads": -1,
"filename": "HROCH-1.4.12-py3-none-any.whl",
"has_sig": false,
"md5_digest": "31015a070b4a52f9506dae1d36a0668a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 454509,
"upload_time": "2024-08-31T16:12:21",
"upload_time_iso_8601": "2024-08-31T16:12:21.006291Z",
"url": "https://files.pythonhosted.org/packages/ba/4b/70d399b1cb6301a93a1892e563b392fb64f70b667cc4d7562187051395ca/HROCH-1.4.12-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a084d2b2983718f966a6420885c5e241032361010460cba865fcea0da2dc7164",
"md5": "87998b42689a275d6b9f941ef7f745ce",
"sha256": "a7e934bdb4df9314df3328d15ae48552ee8ffc4aa7ec2006e6f7f49300c38f74"
},
"downloads": -1,
"filename": "hroch-1.4.12.tar.gz",
"has_sig": false,
"md5_digest": "87998b42689a275d6b9f941ef7f745ce",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 445851,
"upload_time": "2024-08-31T16:12:23",
"upload_time_iso_8601": "2024-08-31T16:12:23.067203Z",
"url": "https://files.pythonhosted.org/packages/a0/84/d2b2983718f966a6420885c5e241032361010460cba865fcea0da2dc7164/hroch-1.4.12.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-31 16:12:23",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "janoPig",
"github_project": "HROCH",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "hroch"
}