Skip to content

Commit

Permalink
Merge branch 'master' into time_series
Browse files Browse the repository at this point in the history
  • Loading branch information
Yard1 committed Jun 26, 2021
2 parents f365af2 + 3edb2b6 commit 05d7e58
Show file tree
Hide file tree
Showing 49 changed files with 4,003 additions and 486 deletions.
2 changes: 1 addition & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# These are supported funding model platforms

github: PyCaret
# github: PyCaret
48 changes: 48 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
name: "\U0001F41B Bug report"
about: Create a report to help us improve
title: "[BUG]"
labels: bug
assignees: ''

---

**Describe the bug**
<!--
A clear and concise description of what the bug is.
-->

**To Reproduce**
<!--
Add a Minimal, Complete, and Verifiable example (for more details, see e.g. https://stackoverflow.com/help/mcve
If the code is too long, feel free to put it in a public gist and link it in the issue: https://gist.github.com
-->

```python
<Paste your code here>
```

**Expected behavior**
<!--
A clear and concise description of what you expected to happen.
-->

**Additional context**
<!--
Add any other context about the problem here.
-->

**Versions**
<details>

<!--
Please run the following code snippet and paste the output here:
import pycaret
pycaret.__version__
-->

</details>

<!-- Thanks for contributing! -->
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Stack Overflow
url: https://stackoverflow.com/questions/tagged/pycaret
about: Please ask and answer usage questions on Stack Overflow
- name: Discussions
url: https://github.com/pycaret/pycaret/discussions/new
about: Ask questions and discuss with other pycaret community members
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/doc_improvement.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: "\U0001F4D6 Documentation improvement"
about: Create a report to help us improve the documentation. Alternatively you can just open a pull request with the suggested change.
title: "[DOC]"
labels: documentation
assignees: ''

---

#### Describe the issue linked to the documentation

<!--
Tell us about the confusion introduced in the documentation.
-->

#### Suggest a potential alternative/fix

<!--
Tell us how we could improve the documentation in this regard.
-->
8 changes: 4 additions & 4 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
---
name: Feature request
name: "\u2728 Feature request"
about: Suggest an idea for this project
title: ''
labels: ''
labels: enhancement
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
A clear and concise description of what the problem is.

**Describe the solution you'd like**
A clear and concise description of what you want to happen.
A clear and concise description of what you want to happen, ideally taking into consideration the existing toolbox design, classes and methods.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
Expand Down
23 changes: 23 additions & 0 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Mark stale issues and pull requests

on:
schedule:
- cron: "30 1 * * *"

jobs:
stale:

runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write

steps:
- uses: actions/stale@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: 'Stale issue message: This issue will be automatically closed by GitHub Actions in 1 week if there is no further activity.'
stale-pr-message: 'Stale pull request message: This PR will be automatically closed by GitHub Actions in 1 week if there is no further activity.'
stale-issue-label: 'no-issue-activity'
stale-pr-label: 'no-pr-activity'
exempt-issue-labels: 'bug,enhancement,help wanted'
6 changes: 3 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f requirements-optional.txt ]; then pip install -r requirements-optional.txt; fi
if [ -f requirements-ts.txt ]; then pip install -r requirements-ts.txt; fi
python -m spacy download en
pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.0.0/en_core_web_sm-3.0.0-py3-none-any.whl
- name: Remove tests
run: |
rm pycaret/tests/test_classification_tuning.py
Expand Down Expand Up @@ -57,7 +57,7 @@ jobs:
pip install -r requirements.txt
pip install -r requirements-optional.txt
pip install -r requirements-ts.txt
python -m spacy download en
pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.0.0/en_core_web_sm-3.0.0-py3-none-any.whl
- name: Remove tests
run: |
remove-item pycaret/tests/* -Include @('test_classification_tuning.py','test_classification_plots.py','test_regression_plots.py', 'test_regression_tuning.py')
Expand Down Expand Up @@ -159,7 +159,7 @@ jobs:
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f requirements-optional.txt ]; then pip install -r requirements-optional.txt; fi
if [ -f requirements-ts.txt ]; then pip install -r requirements-ts.txt; fi
python -m spacy download en
pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.0.0/en_core_web_sm-3.0.0-py3-none-any.whl
- name: Remove tests
run: |
find pycaret/tests -type f -not -name '__init__.py' -not -name 'test_classification_plots.py' -not -name 'test_regression_plots.py' -delete
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,10 @@ tutorials/logs.log
.idea/
/pycaret/tests/mlruns/
*.log
trained_models/
*.ipynb
*.pkl
/mlruns.db
/mlruns.db-journal
mlflow_backend.py
demo4.py
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,31 @@
# Changelog
All notable changes to this project will be documented in this file.
<br/><br/>

#### Release: PyCaret 2.3.2 | Release Date: XX XX, 2021 (SEVERAL BUGS FIXED)
- `gain` and `lift` plot fixed in `pycaret.classification` module. Previously `y_pred` was passed instead of `y_true`.
- The Kolmogorov-Smirnov (or KS) plot added in the `plot_model` function under `pycaret.classification` module.
- Partial Dependence Plot is now added in the `interpret_model` function under `pycaret.classification` and `pycaret.regression`.
- shap value force plot for LightGBM in the `interpret_model` function was displayed as multiclass plot. Bug fixed now.
<br/><br/><br/>

#### Release: PyCaret 2.3.1 | Release Date: April 28, 2021 (SEVERAL BUGS FIXED)

- Fixed an exception with missing variables (display_container etc.) during load_config()
- Fixed exceptions when using Ridge and RF estimators with cuML (GPU mode)
- Fixed PyCaret's cuML wrappers not being pickleable
- Added an extra check to get_all_object_vars_and_properties internal method, fixing exceptions with certain estimators
- save_model() now supports kwargs, which will be passed to joblib.dump()
- Fixed an issue with load_model() from AWS (duplicate .pkl extension) - thanks to markgrujic (https://github.com/pycaret/pycaret/pull/1128)
- Fixed a typo in documentation - thanks to koorukuroo (https://github.com/pycaret/pycaret/pull/1149)
- Optimized Fix_multicollinearity transformer, drastically reducing the size of saved pipeline
- interpret_model() now supports data passed as an argument - thanks to jbechtel (https://github.com/pycaret/pycaret/pull/1184)
- Removed `infer_signature` from MLflow logging when `log_experiment=True`.
- Fixed a rare issue where binary_multiclass_score_func was not pickleable
- Fixed edge case exceptions in feature selection
- Fixed an exception with `finalize_model` when using GroupKFold CV
- Pinned `mlxtend>=0.17.0`, `imbalanced-learn==0.7.0`, and `gensim<4.0.0`
<br/><br/><br/>

### Release: PyCaret 2.3.0 | Release Date: February 21, 2021

Expand Down
23 changes: 18 additions & 5 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,8 +1,21 @@
Copyright 2021-2022, Moez Ali <[email protected]>
MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
Copyright (c) 2021 PyCaret

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
© 2021 GitHub, Inc.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
23 changes: 6 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
![alt text](https://github.com/pycaret/pycaret/blob/master/pycaret2.3.png)

# PyCaret 2.3
![Python](https://img.shields.io/badge/Python-3.6%20%7C%203.7%20%7C%203.8-blue) ![pytest on push](https://github.com/pycaret/pycaret/workflows/pytest%20on%20push/badge.svg) [![Documentation Status](https://readthedocs.org/projects/pip/badge/?version=stable)](http://pip.pypa.io/en/stable/?badge=stable) [![PyPI version](https://badge.fury.io/py/pycaret.svg)](https://badge.fury.io/py/pycaret) [![License](https://img.shields.io/pypi/l/ansicolortags.svg)](https://img.shields.io/pypi/l/ansicolortags.svg) [![Git count](http://hits.dwyl.com/pycaret/pycaret/pycaret.svg)](http://hits.dwyl.com/pycaret/pycaret/pycaret) [![Slack](https://img.shields.io/badge/slack-chat-green.svg?logo=slack)](https://join.slack.com/t/pycaretworkspace/shared_invite/zt-kdoe7hee-yvNANPHXPM9VtK7R6Npx4Q)
![Python](https://img.shields.io/badge/Python-3.6%20%7C%203.7%20%7C%203.8-blue) ![pytest on push](https://github.com/pycaret/pycaret/workflows/pytest%20on%20push/badge.svg) [![Documentation Status](https://readthedocs.org/projects/pip/badge/?version=stable)](http://pip.pypa.io/en/stable/?badge=stable) [![PyPI version](https://badge.fury.io/py/pycaret.svg)](https://badge.fury.io/py/pycaret) [![License](https://img.shields.io/pypi/l/ansicolortags.svg)](https://img.shields.io/pypi/l/ansicolortags.svg) [![Git count](http://hits.dwyl.com/pycaret/pycaret/pycaret.svg)](http://hits.dwyl.com/pycaret/pycaret/pycaret) [![Slack](https://img.shields.io/badge/slack-chat-green.svg?logo=slack)](https://join.slack.com/t/pycaret/shared_invite/zt-qc4pfcw5-OLV3UFF~DzMHFyaJeFKw~A)

## What is PyCaret?
PyCaret is an open-source, low-code machine learning library in Python that automates machine learning workflows. It is an end-to-end machine learning and model management tool that speeds up the experiment cycle exponentially and makes you more productive.

In comparison with the other open-source machine learning libraries, PyCaret is an alternate low-code library that can be used to replace hundreds of lines of code with few words only. This makes experiments exponentially fast and efficient. PyCaret is essentially a Python wrapper around several machine learning libraries and frameworks such as scikit-learn, XGBoost, LightGBM, CatBoost, spaCy, Optuna, Hyperopt, Ray, and many more.
In comparison with the other open-source machine learning libraries, PyCaret is an alternate low-code library that can be used to replace hundreds of lines of code with few words only. This makes experiments exponentially fast and efficient. PyCaret is essentially a Python wrapper around several machine learning libraries and frameworks such as scikit-learn, XGBoost, LightGBM, CatBoost, spaCy, Optuna, Hyperopt, Ray, and many more.

The design and simplicity of PyCaret is inspired by the emerging role of citizen data scientists, a term first used by Gartner. Citizen Data Scientists are power users who can perform both simple and moderately sophisticated analytical tasks that would previously have required more expertise. Seasoned data scientists are often difficult to find and expensive to hire but citizen data scientists can be an effective way to mitigate this gap and address data-related challenges in the business setting.

PyCaret is a great library which not only simplifies the machine learning tasks for citizen data scientists but also helps new startups to reduce the cost of investing in a team of data scientists. Therefore, this library has not only helped the citizen data scientists but has also helped individuals who want to start exploring the field of data science, having no prior knowledge in this field.
PyCaret is a great library which not only simplifies the machine learning tasks for citizen data scientists but also helps new startups to reduce the cost of investing in a team of data scientists. Therefore, this library has not only helped the citizen data scientists but has also helped individuals who want to start exploring the field of data science, having no prior knowledge in this field. Iniitial idea of PyCaret was inspired by Caret library in R.

- Official Website: https://www.pycaret.org
- Documentation: https://pycaret.readthedocs.io/en/latest/

![alt text](https://github.com/pycaret/pycaret/blob/master/pycaret2-features.png)

## Current Release
PyCaret `2.3` is now available. See `2.3` release notes. The easiest way to install pycaret is using pip.
PyCaret `2.3.1` is now available. See `2.3.1` release notes. The easiest way to install pycaret is using pip.

```python
pip install pycaret
Expand Down Expand Up @@ -63,10 +63,10 @@ cuML >= 0.15 cannot be installed on Google Colab. Instead use blazingSQL (https:
- Docs: https://pycaret.readthedocs.io/en/latest/
- Tutorials: https://pycaret.readthedocs.io/en/latest/tutorials.html
- Example Notebooks: https://github.com/pycaret/pycaret/tree/master/examples
- Other Resources: https://github.com/pycaret/pycaret/tree/master/resources
- Other Resources: https://github.com/pycaret/pycaret/tree/master/resources
- Issue Logs: https://github.com/pycaret/pycaret/issues
- Contribute: https://pycaret.readthedocs.io/en/latest/contribute.html
- Join Slack Community: https://join.slack.com/t/pycaretworkspace/shared_invite/zt-kdoe7hee-yvNANPHXPM9VtK7R6Npx4Q
- Join Slack Community: https://join.slack.com/t/pycaret/shared_invite/zt-qc4pfcw5-OLV3UFF~DzMHFyaJeFKw~A

## Who should use PyCaret?
PyCaret is an open source library that anybody can use. In our view the ideal target audience of PyCaret is: <br />
Expand All @@ -82,14 +82,3 @@ PyCaret is an open source library that anybody can use. In our view the ideal ta
</a>

Made with [contributors-img](https://contributors-img.web.app).

## License

Copyright 2021-2022 Moez Ali <[email protected]>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
© 2021 GitHub, Inc.
2 changes: 1 addition & 1 deletion docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ A formatted version of the citation would look like this::
title = {PyCaret: An open source, low-code machine learning library in Python},
year = {2020},
month = {April},
note = {PyCaret version 2.3},
note = {PyCaret version 2.3.1},
url = {https://www.pycaret.org}
}

Expand Down
Loading

0 comments on commit 05d7e58

Please sign in to comment.