{"id":47325737,"url":"https://github.com/slickml/slick-ml","last_synced_at":"2026-03-17T19:04:53.004Z","repository":{"id":37932586,"uuid":"291764449","full_name":"slickml/slick-ml","owner":"slickml","description":"SlickML 🧞: Slick Machine Learning in Python","archived":false,"fork":false,"pushed_at":"2024-07-26T00:52:52.000Z","size":27027,"stargazers_count":28,"open_issues_count":26,"forks_count":9,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-29T15:31:23.716Z","etag":null,"topics":["data-science","machine-learning","python"],"latest_commit_sha":null,"homepage":"https://www.SlickML.com","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/slickml.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2020-08-31T16:15:41.000Z","updated_at":"2025-04-10T11:03:46.000Z","dependencies_parsed_at":"2024-07-23T09:34:07.395Z","dependency_job_id":null,"html_url":"https://github.com/slickml/slick-ml","commit_stats":{"total_commits":430,"total_committers":7,"mean_commits":61.42857142857143,"dds":"0.15581395348837213","last_synced_commit":"8b0d7d79fb14ccf80d685b488eace0cd91f8abcb"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/slickml/slick-ml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slickml%2Fslick-ml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slickml%2Fslick-ml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slickml%2Fslick-ml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slickml%2Fslick-ml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slickml","download_url":"https://codeload.github.com/slickml/slick-ml/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slickml%2Fslick-ml/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30628756,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T17:32:55.572Z","status":"ssl_error","status_checked_at":"2026-03-17T17:32:38.732Z","response_time":56,"last_error":"SSL_read: 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","machine-learning","python"],"created_at":"2026-03-17T19:04:52.199Z","updated_at":"2026-03-17T19:04:52.999Z","avatar_url":"https://github.com/slickml.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n[![build](https://github.com/slickml/slick-ml/actions/workflows/ci.yml/badge.svg)](https://github.com/slickml/slick-ml/actions/workflows/ci.yml)\n[![docs](https://github.com/slickml/slick-ml/actions/workflows/cd.yml/badge.svg)](https://github.com/slickml/slick-ml/actions/workflows/cd.yml)\n[![codecov](https://codecov.io/gh/slickml/slick-ml/graph/badge.svg?token=Z7XP51MB4K)](https://codecov.io/gh/slickml/slick-ml)\n[![downloads](https://pepy.tech/badge/slickml)](https://pepy.tech/project/slickml)\n[![license](https://img.shields.io/github/license/slickml/slick-ml)](https://github.com/slickml/slick-ml/blob/master/LICENSE/)\n![pypi_version](https://img.shields.io/pypi/v/slickml)\n![python_version](https://img.shields.io/pypi/pyversions/slickml)\n[![slack_invite](https://badgen.net/badge/Join/SlickML%20Slack/purple?icon=slack)](https://www.slickml.com/slack-invite)\n![twitter_url](https://img.shields.io/twitter/url?style=social\u0026url=https%3A%2F%2Ftwitter.com%2FSlickML)\n\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.docs.slickml.com/\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/slickml/slick-ml/master/assets/designs/logo_clear.png\" width=\"250\"\u003e\u003c/img\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003ch1 align=\"center\"\u003eSlickML🧞: Slick Machine Learning in Python\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/slickml/slick-ml/releases\"\u003e Explore Releases\u003c/a\u003e\n    🟣 \n    \u003ca href=\"https://github.com/slickml/slick-ml/blob/master/CONTRIBUTING.md\"\u003e Become a Contributor\u003c/a\u003e\n    🟣 \n    \u003ca href=\"https://www.docs.slickml.com\"\u003e Explore API Docs\u003c/a\u003e\n    🟣 \n    \u003ca href=\"https://www.slickml.com/slack-invite\"\u003e Join our Slack\u003c/a\u003e\n    🟣 \n    \u003ca href=\"https://twitter.com/slickml\"\u003e Tweet Us\u003c/a\u003e   \n  \u003c/p\u003e\n\u003c/div\u003e\n\n## 🧠 SlickML🧞 Philosophy\n**SlickML** is an open-source machine learning library written in Python aimed at accelerating the\nexperimentation time for ML applications with tabular data while maximizing the amount of information\ncan be inferred. Data Scientists' tasks can often be repetitive such as feature selection, model\ntuning, or evaluating metrics for classification and regression problems. We strongly believe that a\ngood portion of the tasks based on tabular data can be addressed via gradient boosting and generalized\nlinear models\u003csup\u003e[1](https://arxiv.org/pdf/2207.08815.pdf)\u003c/sup\u003e. SlickML provides Data Scientists\nwith a toolbox to quickly prototype solutions for a given problem with minimal code while maximizing\nthe amount of information that can be inferred. Additionally, the prototype solutions can be easily\npromoted and served in production with our recommended recipes via various model serving frameworks\nincluding [ZenML](https://github.com/zenml-io/zenml), [BentoML](https://github.com/bentoml/BentoML),\nand [Prefect](https://github.com/PrefectHQ/prefect). More details coming soon 🤞 ...\n\n\n## 📖 Documentation\n✨ The API documentation is available at [docs.slickml.com](https://www.docs.slickml.com).\n\n## 🛠 Installation\nTo begin with, install [Python version \u003e=3.8,\u003c3.12](https://www.python.org) and to install the library\nfrom [PyPI](https://pypi.org/project/slickml/) simply run 🏃‍♀️ :\n```\npip install slickml\n```\nor if you are a [python poetry](https://python-poetry.org/) user, simply run 🏃‍♀️ :\n```\npoetry add slickml\n```\n\n📣  Please note that a working [Fortran Compiler](https://gcc.gnu.org/install/) (`gfortran`) is also required to build the package. If you do not have `gcc` installed, the following commands depending on your operating system will take care of this requirement.\n```\n# Mac Users\nbrew install gcc\n\n# Linux Users\nsudo apt install build-essential gfortran\n```\n\nThe SlickML CLI tool behaves similarly to many other CLIs for basic features. In order to find out\nwhich version of SlickML you are running, simply run 🏃‍♀️ :\n```\nslickml --version\n```\n\n### 🐍 Python Virtual Environments\nIn order to avoid any potential conflicts with other installed Python packages, it is\nrecommended to use a virtual environment, e.g. [python poetry](https://python-poetry.org/), [python virtualenv](https://docs.python.org/3/library/venv.html), [pyenv virtualenv](https://github.com/pyenv/pyenv-virtualenv), or [conda environment](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html). Our recommendation is to use `python-poetry` 🥰 for everything 😁.\n\n\n## 📌 Quick Start\n✅ An example to quickly run a `Feature Selection` pipeline with embedded `Cross-Validation` and `Feature-Importance` visualization: \n```python\nfrom slickml.feautre_selection import XGBoostFeatureSelector\nxfs = XGBoostFeatureSelector()\nxfs.fit(X, y)\n```\n![selection](https://raw.githubusercontent.com/slickml/slick-ml/master/assets/images/feature_selection.png)\n\n```python\nxfs.plot_cv_results()\n```\n![xfscv](https://raw.githubusercontent.com/slickml/slick-ml/master/assets/images/xfs_cv_results.png)\n\n```python\nxfs.plot_frequency()\n```\n![frequency](https://raw.githubusercontent.com/slickml/slick-ml/master/assets/images/feature_frequency.png)\n\n✅ An example to quickly find the `tuned hyper-parameter` with `Bayesian Optimization`:\n```python\nfrom slickml.optimization import XGBoostBayesianOptimizer\nxbo = XGBoostBayesianOptimizer()\nxbo.fit(X_train, y_train)\n```\n![clfbo](https://raw.githubusercontent.com/slickml/slick-ml/master/assets/images/clf_hyper_params.png)\n\n```python\nbest_params = xbo.get_best_params()\nbest_params\n\n{\"colsample_bytree\": 0.8213916662259918,\n \"gamma\": 1.0,\n \"learning_rate\": 0.23148232373451072,\n \"max_depth\": 4,\n \"min_child_weight\": 5.632602921054691,\n \"reg_alpha\": 1.0,\n \"reg_lambda\": 0.39468801734425263,\n \"subsample\": 1.0\n }\n```\n\n✅ An example to quickly train/validate a `XGBoostCV Classifier` with `Cross-Validation`, `Feature-Importance`, and `Shap` visualizations:\n```python\nfrom slickml.classification import XGBoostCVClassifier\nclf = XGBoostCVClassifier(params=best_params)\nclf.fit(X_train, y_train)\ny_pred_proba = clf.predict_proba(X_test)\n\nclf.plot_cv_results()\n```\n![clfcv](https://raw.githubusercontent.com/slickml/slick-ml/master/assets/images/clf_cv_results.png)\n\n```python\nclf.plot_feature_importance()\n```\n![clfimp](https://raw.githubusercontent.com/slickml/slick-ml/master/assets/images/clf_feature_importance.png)\n\n```python\nclf.plot_shap_summary(plot_type=\"violin\")\n```\n![clfshap](https://raw.githubusercontent.com/slickml/slick-ml/master/assets/images/clf_shap_summary.png)\n\n```python\nclf.plot_shap_summary(plot_type=\"layered_violin\", layered_violin_max_num_bins=5)\n```\n![clfshaplv](https://raw.githubusercontent.com/slickml/slick-ml/master/assets/images/clf_shap_summary_lv.png)\n\n```python\nclf.plot_shap_waterfall()\n```\n![clfshapwf](https://raw.githubusercontent.com/slickml/slick-ml/master/assets/images/clf_shap_waterfall.png)\n\n\n✅ An example to train/validate a `GLMNetCV Classifier` with `Cross-Validation` and `Coefficients` visualizations:\n```python\nfrom slickml.classification import GLMNetCVClassifier\nclf = GLMNetCVClassifier(alpha=0.3, n_splits=4, metric=\"auc\")\nclf.fit(X_train, y_train)\ny_pred_proba = clf.predict_proba(X_test)\n\nclf.plot_cv_results()\n```\n![clfglmnetcv](https://raw.githubusercontent.com/slickml/slick-ml/master/assets/images/clf_glmnet_cv_results.png)\n\n```python\nclf.plot_coeff_path()\n```\n![clfglmnetpath](https://raw.githubusercontent.com/slickml/slick-ml/master/assets/images/clf_glmnet_paths.png)\n\n\n✅ An example to quickly visualize the `binary classification metrics` based on multiple `thresholds`:\n```python\nfrom slickml.metrics import BinaryClassificationMetrics\nclf_metrics = BinaryClassificationMetrics(y_test, y_pred_proba)\nclf_metrics.plot()\n```\n![clfmetrics](https://raw.githubusercontent.com/slickml/slick-ml/master/assets/images/clf_metrics.png)\n\n\n✅ An example to quickly visualize some `regression metrics`:\n```python\nfrom slickml.metrics import RegressionMetrics\nreg_metrics = RegressionMetrics(y_test, y_pred)\nreg_metrics.plot()\n```\n![regmetrics](https://raw.githubusercontent.com/slickml/slick-ml/master/assets/images/reg_metrics.png)\n\n\n## 🧑‍💻🤝 Contributing to SlickML🧞\nYou can find the details of the development process in our [Contributing](CONTRIBUTING.md) guidelines. We strongly believe that reading and following these guidelines will help us make the contribution process easy and effective for everyone involved 🚀🌙 .\nSpecial thanks to all of our amazing contributors 👇\n\n\u003ca href=\"https://github.com/slickml/slick-ml/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=slickml/slick-ml\" /\u003e\n\u003c/a\u003e\n\n![Repobeats analytics image](https://repobeats.axiom.co/api/embed/ca865991b0547199fe7a069de7af25645b225e9c.svg \"Repobeats analytics image\")\n\n\n\n## ❓ 🆘 📲 Need Help?\nPlease join our [Slack Channel](https://www.slickml.com/slack-invite) to interact directly with the core team and our small community. This is a good place to discuss your questions and ideas or in general ask for help 👨‍👩‍👧 👫 👨‍👩‍👦 .\n\n\n## 📚 Citing SlickML🧞\nIf you use SlickML in an academic work 📃 🧪 🧬 , please consider citing it 🙏 .\n### Bibtex Entry:\n```bib\n@software{slickml2020,\n  title={SlickML: Slick Machine Learning in Python},\n  author={Tahmassebi, Amirhessam and Smith, Trace},\n  url={https://github.com/slickml/slick-ml},\n  version={0.2.0},\n  year={2021},\n}\n\n@article{tahmassebi2021slickml,\n  title={Slickml: Slick machine learning in python},\n  author={Tahmassebi, Amirhessam and Smith, Trace},\n  journal={URL available at: https://github. com/slickml/slick-ml},\n  year={2021}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslickml%2Fslick-ml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslickml%2Fslick-ml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslickml%2Fslick-ml/lists"}