{"id":17477708,"url":"https://github.com/btcross26/genestboost","last_synced_at":"2026-01-21T17:03:01.345Z","repository":{"id":50196638,"uuid":"172490943","full_name":"btcross26/genestboost","owner":"btcross26","description":"General boosting framework for any regression estimator","archived":false,"fork":false,"pushed_at":"2022-02-28T02:34:48.000Z","size":13929,"stargazers_count":2,"open_issues_count":9,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-23T02:19:20.847Z","etag":null,"topics":["data-science","gradient-boosting","machine-learning","python3"],"latest_commit_sha":null,"homepage":"https://btcross26.github.io/genestboost/build/html/index.html","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/btcross26.png","metadata":{"files":{"readme":"README.rst","changelog":"changelog.rst","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-02-25T11:10:40.000Z","updated_at":"2022-07-27T00:19:02.000Z","dependencies_parsed_at":"2022-09-26T20:53:12.580Z","dependency_job_id":null,"html_url":"https://github.com/btcross26/genestboost","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/btcross26/genestboost","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/btcross26%2Fgenestboost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/btcross26%2Fgenestboost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/btcross26%2Fgenestboost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/btcross26%2Fgenestboost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/btcross26","download_url":"https://codeload.github.com/btcross26/genestboost/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/btcross26%2Fgenestboost/sbom","scorecard":{"id":256593,"data":{"date":"2025-08-11","repo":{"name":"github.com/btcross26/genestboost","commit":"be14503ea253cb8b72bb168608c581f238c57d50"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/7 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build_tests.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build_tests.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/btcross26/genestboost/build_tests.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build_tests.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/btcross26/genestboost/build_tests.yml/main?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T09:51:55.571Z","repository_id":50196638,"created_at":"2025-08-17T09:51:55.571Z","updated_at":"2025-08-17T09:51:55.571Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28636658,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T15:01:31.228Z","status":"ssl_error","status_checked_at":"2026-01-21T14:42:58.942Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["data-science","gradient-boosting","machine-learning","python3"],"created_at":"2024-10-18T20:09:06.968Z","updated_at":"2026-01-21T17:03:01.318Z","avatar_url":"https://github.com/btcross26.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":".. README.rst\n\n.. image:: https://img.shields.io/badge/python-3.7-green.svg\n      :target: https://www.python.org\n.. image:: https://img.shields.io/badge/python-3.8-green.svg\n      :target: https://www.python.org\n.. image:: https://img.shields.io/badge/python-3.9-green.svg\n      :target: https://www.python.org\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n      :target: https://github.com/psf/black\n.. image:: https://github.com/btcross26/genestboost/workflows/build_tests/badge.svg\n      :target: https://github.com/btcross26/genestboost/actions/build_tests\n.. image:: https://img.shields.io/badge/License-BSD%203--Clause-blue.svg\n      :target: https://opensource.org/licenses/BSD-3-Clause\n.. image:: https://badge.fury.io/py/genestboost.svg\n      :target: https://pypi.python.org/pypi/genestboost\n.. image:: https://img.shields.io/conda/vn/conda-forge/genestboost.svg\n      :target: https://anaconda.org/conda-forge/genestboost\n\n\n|\n.. image:: https://user-images.githubusercontent.com/7505706/120132584-968dd780-c198-11eb-8843-55bc23310657.png\n\n\n`Documentation Home \u003chttps://btcross26.github.io/genestboost/build/html/index.html\u003e`__ | `Quick Coding Example`_ | `Additional Examples`_ | `Limitations`_ | `Installation`_ | `Changelog \u003chttps://github.com/btcross26/genestboost/blob/main/changelog.rst\u003e`__\n\n\n:code:`genestboost` is an ML boosting library that separates the modeling algorithm from the boosting algorithm. The result is that you can boost any generic regression model, not just trees. Build a forward-thinking (forward-propagating) neural network if you wish, or build an ensemble of support vector machines if you would so desire. Mix and match link and loss functions at will.\n\n\nQuick Coding Example\n--------------------\n\nBoost simple neural networks to predict a binary target:\n\n.. code-block:: python\n\n    from sklearn.neural_network import MLPRegressor\n    from sklearn.datasets import make_classification\n    import matplotlib.pyplot as plt\n\n    from genestboost import BoostedModel\n    from genestboost.loss_functions import LogLoss\n    from genestboost.link_functions import LogitLink\n\n    # generate a dummy dataset - the library expects numpy arrays of dtype float\n    X, y = make_classification(\n        n_samples=10000,\n        n_features=50,\n        n_informative=30,\n        weights=[0.90, 0.10],\n        random_state=17,\n    )\n\n    # create a boosted model instance\n    model = BoostedModel(\n        link=LogitLink(),                  # link function to use\n        loss=LogLoss(),                    # loss function to use\n        model_callback=MLPRegressor,       # callback creates model with fit, predict\n        model_callback_kwargs={            # keyword arguments to the callback\n            \"hidden_layer_sizes\": (16,),\n            \"max_iter\": 1000,\n            \"alpha\": 0.2,\n        },\n        weights=\"newton\",                  # newton = scale gradients with second derivatives\n        alpha=1.0,                         # initial learning rate to try\n        step_type=\"decaying\",              # learning rate type\n        step_decay_factor=0.50,            # learning rate decay factor\n        validation_fraction=0.20,          # fraction of training set to use for holdout\n        validation_iter_stop=5,            # stopping criteria\n        validation_stratify=True,          # stratify the holdout set by the target (classification)\n    )\n\n    # fit the model\n    model.fit(X, y, min_iterations=10, iterations=100)\n\n    # evaluate the model\n    print(model.get_iterations())\n    predictions = model.predict(X)        # predicted y's (probabilities in this case)\n    scores = model.decision_function(X)   # predicted links (logits in this case)\n    plt.plot(model.get_loss_history(), label=[\"Training\", \"Holdout\"])\n    plt.legend(loc=\"best\")\n\n\nAdditional Examples\n-------------------\n- `Quantile Regression with Different Modeling Algorithms \u003chttps://btcross26.github.io/genestboost/build/html/quantile_regression_example.html\u003e`_\n- `Binary Target Boosting with Custom Model Callback Wrapper \u003chttps://btcross26.github.io/genestboost/build/html/binary_target_with_custom_wrapper_example.html\u003e`_\n- `BoostedLinearModel with SimplePLS Algorithm \u003chttps://btcross26.github.io/genestboost/build/html/boosted_linear_model_example.html\u003e`_\n- `Alternative Fitting Procedure with Surrogate Loss Function \u003chttps://btcross26.github.io/genestboost/build/html/alternative_fitting_procedure_example.html\u003e`_\n- `Forward Propagating Neural Network \u003chttps://btcross26.github.io/genestboost/build/html/forward_neural_network_example.html\u003e`_\n\n\nLimitations\n-----------\n\nSeparating the boosting and modeling algorithm may not give the most optimal performance outcomes when it comes to training and prediction speeds. The tool is also programmed in pure Python - for now. Thus, in its current state the library is primarily for research and development. In particular, the library classes can be easily extended to handle custom loss functions and custom link functions. The library can also serve as a foundation for more specialized boosting algorithms when the need to optimize for performance arises.\n\nIn the future, the library will be restructured slightly under the hood, and there are plans to parallelize ensemble prediction and move some performance bottlenecks to Nim (i.e., C-extensions). Support for boosting of multivariate targets will be added when time permits.\n\n\nInstallation\n------------\n\nCreate a virtual environment with Python \u003e=3.7,\u003c=3.9, and install from git:\n\n.. code-block::\n\n    $ pip install git+https://github.com/btcross26/genestboost.git\n\nAlternatively, you can install directly from PyPI:\n\n.. code-block:: bash\n\n    $ pip install genestboost\n\nOr from conda-forge:\n\n.. code-block:: bash\n\n    $ conda install -c conda-forge genestboost\n\n\nDocumentation\n-------------\n\nDocumentation is a work in progress. The most recent documentation is available on `GitHub Pages \u003chttps://btcross26.github.io/genestboost/build/html/index.html\u003e`_.\n\n\nBugs / Requests\n---------------\n\nPlease use the `GitHub issue tracker \u003chttps://github.com/btcross26/genestboost/issues\u003e`_ to submit bugs or request features.\n\n\nChangelog\n---------\n\nConsult the `Changelog \u003chttps://btcross26.github.io/genestboost/build/html/changelog.html\u003e`_ for the latest release information.\n\n\nContributing\n------------\n\nIf you would like to contribute, please fork this repository, create a branch off of :code:`main` for your contribution, and submit a PR to the :code:`dev_staging` branch. Also, please create an issue describing the nature of the contribution if it has not already been done.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbtcross26%2Fgenestboost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbtcross26%2Fgenestboost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbtcross26%2Fgenestboost/lists"}