{"id":25786462,"url":"https://github.com/janopig/hroch","last_synced_at":"2025-02-27T10:00:04.006Z","repository":{"id":48999139,"uuid":"485153609","full_name":"janoPig/HROCH","owner":"janoPig","description":"Extremly fast c++/python symbolic regression library based on parallel local search.","archived":false,"fork":false,"pushed_at":"2024-10-05T15:40:51.000Z","size":16104,"stargazers_count":14,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-16T23:04:23.558Z","etag":null,"topics":["classification","deep-learning","equation-discovery","explainable-ai","fuzzy","hroch","machine-learning","physics","symbolic-regression"],"latest_commit_sha":null,"homepage":"https://janopig.github.io/HROCH/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/janoPig.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-24T22:20:34.000Z","updated_at":"2024-09-23T01:54:45.000Z","dependencies_parsed_at":"2023-02-14T01:45:19.561Z","dependency_job_id":"dc07ffc3-a227-43c8-b7b5-e9ab524bf0e3","html_url":"https://github.com/janoPig/HROCH","commit_stats":{"total_commits":260,"total_committers":2,"mean_commits":130.0,"dds":0.08076923076923082,"last_synced_commit":"6205905b7e1f6510915836b64f349369c5e84eb0"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janoPig%2FHROCH","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janoPig%2FHROCH/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janoPig%2FHROCH/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janoPig%2FHROCH/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/janoPig","download_url":"https://codeload.github.com/janoPig/HROCH/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241002112,"owners_count":19892111,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["classification","deep-learning","equation-discovery","explainable-ai","fuzzy","hroch","machine-learning","physics","symbolic-regression"],"created_at":"2025-02-27T10:00:03.202Z","updated_at":"2025-02-27T10:00:03.990Z","avatar_url":"https://github.com/janoPig.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Symbolic regression and classification library  \n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT) [![PyPI version](https://badge.fury.io/py/HROCH.svg)](https://badge.fury.io/py/HROCH) [![Downloads](https://pepy.tech/badge/hroch)](https://pepy.tech/project/hroch) [![CodeQL](https://github.com/janoPig/HROCH/actions/workflows/codeql.yml/badge.svg)](https://github.com/janoPig/HROCH/actions/workflows/codeql.yml) [![Unittests](https://github.com/janoPig/HROCH/actions/workflows/unittests.yml/badge.svg)](https://github.com/janoPig/HROCH/actions/workflows/unittests.yml) [![pages-build-deployment](https://github.com/janoPig/HROCH/actions/workflows/pages/pages-build-deployment/badge.svg?branch=main)](https://github.com/janoPig/HROCH/actions/workflows/pages/pages-build-deployment)[![Upload Python Package](https://github.com/janoPig/HROCH/actions/workflows/python-publish.yml/badge.svg?event=release)](https://github.com/janoPig/HROCH/actions/workflows/python-publish.yml)\n\n**High-Performance python 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## Sources\n\nC++20 source code available in separate repo [sr_core](\u003chttps://github.com/janoPig/sr_core\u003e)\n\n## Dependencies\n\n- AVX2 instructions set(all modern CPU support this)\n- numpy\n- sklearn\n\n## Installation\n\n```sh\npip install HROCH\n```\n\n## Usage\n\n[Symbolic_Regression_Demo.ipynb](https://github.com/janoPig/HROCH/blob/main/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\u003cdetails\u003e\n\u003csummary\u003eOlder versions\u003c/summary\u003e\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\u003c/details\u003e\n\n## SRBench\n\n[*full results*](https://github.com/janoPig/HROCH/blob/main/benchmarks/SRBench.md)\n\n\u003cimg src=\"https://github.com/janoPig/HROCH/assets/75015989/3fa087dc-8caf-4301-86d7-4e79a4e84402\" alt=\"SRBench\" style=\"width:800px;\"/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanopig%2Fhroch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjanopig%2Fhroch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanopig%2Fhroch/lists"}