This release is a pre-release and may not be stable for production use.
SlickML🧞: Slick Machine Learning in Python
SlickML is an open-source machine learning library written in Python aimed at accelerating the experimentation time for a ML application. Data Scientist tasks can often be repetitive such as feature selection, model tuning, or evaluating metrics for classification and regression problems. SlickML provides Data Scientists with a toolbox to quickly prototype solutions for a given problem with minimal code.
🛠 Installation
To begin with, install Python version >=3.8,<3.10 and simply run 🏃♀️ :
pip install slickml
📣 Please note that a working Fortran Compiler (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.
# Mac Users
brew install gcc
# Linux Users
sudo apt install build-essential
🐍 Python Virtual Environments
In order to avoid any potential conflicts with other installed Python packages, it is
recommended to use a virtual environment, e.g. python poetry, python virtualenv, pyenv virtualenv, or conda environment. Our recommendation is to use python-poetry 🥰 for everything 😁.
📌 Quick Start
✅ An example to quickly run a Feature Selection pipeline with embedded Cross-Validation and Feature-Importance visualization:
from slickml.feautre_selection import XGBoostFeatureSelector
xfs = XGBoostFeatureSelector()
xfs.fit(X, y)
xfs.plot_cv_results()
xfs.plot_frequency()
✅ An example to quickly find the tuned hyper-parameter with Bayesian Optimization:
from slickml.optimization import XGBoostClassifierBayesianOpt
xbo = XGBoostClassifierBayesianOpt()
xbo.fit(X_train, y_train)
best_params = xbo.get_best_params()
best_params
{"colsample_bytree": 0.8213916662259918,
"gamma": 1.0,
"learning_rate": 0.23148232373451072,
"max_depth": 4,
"min_child_weight": 5.632602921054691,
"reg_alpha": 1.0,
"reg_lambda": 0.39468801734425263,
"subsample": 1.0
}
✅ An example to quickly train/validate a XGBoostCV Classifier with Cross-Validation, Feature-Importance, and Shap visualizations:
from slickml.classification import XGBoostCVClassifier
clf = XGBoostCVClassifier(params=best_params)
clf.fit(X_train, y_train)
y_pred_proba = clf.predict_proba(X_test)
clf.plot_cv_results()
clf.plot_feature_importance()
clf.plot_shap_summary(plot_type="violin")
clf.plot_shap_summary(plot_type="layered_violin", layered_violin_max_num_bins=5)
clf.plot_shap_waterfall()
✅ An example to train/validate a GLMNetCV Classifier with Cross-Validation and Coefficients visualizations:
from slickml.classification import GLMNetCVClassifier
clf = GLMNetCVClassifier(alpha=0.3, n_splits=4, metric="roc_auc")
clf.fit(X_train, y_train)
y_pred_proba = clf.predict_proba(X_test)
clf.plot_cv_results()
clf.plot_coeff_path()
✅ An example to quickly visualize the binary classification metrics based on multiple thresholds:
from slickml.metrics import BinaryClassificationMetrics
clf_metrics = BinaryClassificationMetrics(y_test, y_pred_proba)
clf_metrics.plot()
✅ An example to quickly visualize some regression metrics:
from slickml.metrics import RegressionMetrics
reg_metrics = RegressionMetrics(y_test, y_pred)
reg_metrics.plot()
🧑💻🤝 Contributing to SlickML🧞
You can find the details of the development process in our Contributing guidelines. We strongly believe that reading and following these guidelines will help us make the contribution process easy and effective for everyone involved 🚀🌙 .
❓ 🆘 📲 Need Help?
Please join our Slack Channel 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 👨👩👧 👫 👨👩👦 .
📚 Citing SlickML🧞
If you use SlickML in an academic work 📃 🧪 🧬 , please consider citing it 🙏 .
Bibtex Entry:
@software{slickml2020,
title={SlickML: Slick Machine Learning in Python},
author={Tahmassebi, Amirhessam and Smith, Trace},
url={https://github.com/slickml/slick-ml},
version={0.2.0},
year={2021},
}
@article{tahmassebi2021slickml,
title={Slickml: Slick machine learning in python},
author={Tahmassebi, Amirhessam and Smith, Trace},
journal={URL available at: https://github. com/slickml/slick-ml},
year={2021}
}
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file slickml-0.2.0b0.tar.gz.
File metadata
- Download URL: slickml-0.2.0b0.tar.gz
- Upload date:
- Size: 63.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.8 CPython/3.9.7 Darwin/20.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c57a6a1c3afb89da24e0707f0b7a730f392fb08e914037fba633d90bbd76615
|
|
| MD5 |
6672b5de14f5d28a4919c07bc13f8978
|
|
| BLAKE2b-256 |
bf213f0cbe1c8f16852d3820989491c3e6cc02f7ab481cfe2886e1370f3df352
|
File details
Details for the file slickml-0.2.0b0-py3-none-any.whl.
File metadata
- Download URL: slickml-0.2.0b0-py3-none-any.whl
- Upload date:
- Size: 68.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.8 CPython/3.9.7 Darwin/20.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4489b2f023a4999b8f1b58fa0736fd76caaf503d670aa78bd80e5a451745606
|
|
| MD5 |
cccb8ce27154c09d9a67111272672608
|
|
| BLAKE2b-256 |
a33e85df3672632c8c88e2faf7f240a0b8d1909fc8f46676d2d87ee4d450043a
|