-
Notifications
You must be signed in to change notification settings - Fork 516
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
First Commit-JeetMehta&SaiShruthiSistla #865
Open
mehtajeet97
wants to merge
2
commits into
microsoft:main
Choose a base branch
from
mehtajeet97:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
# Contributing | ||
|
||
This project welcomes and encourages all forms of contributions, including but not limited to: | ||
|
||
- Pushing patches. | ||
- Code review of pull requests. | ||
- Documentation, examples and test cases. | ||
- Readability improvement, e.g., improvement on docstr and comments. | ||
- Community participation in [issues](https://github.com/microsoft/FLAML/issues), [discussions](https://github.com/microsoft/FLAML/discussions), and [discord](https://discord.gg/7ZVfhbTQZ5). | ||
- Tutorials, blog posts, talks that promote the project. | ||
- Sharing application scenarios and/or related research. | ||
|
||
You can take a look at the [Roadmap for Upcoming Features](https://github.com/microsoft/FLAML/wiki/Roadmap-for-Upcoming-Features) to identify potential things to work on. | ||
|
||
Most contributions require you to agree to a | ||
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us | ||
the rights to use your contribution. For details, visit <https://cla.opensource.microsoft.com>. | ||
|
||
If you are new to GitHub [here](https://help.github.com/categories/collaborating-with-issues-and-pull-requests/) is a detailed help source on getting involved with development on GitHub. | ||
|
||
When you submit a pull request, a CLA bot will automatically determine whether you need to provide | ||
a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions | ||
provided by the bot. You will only need to do this once across all repos using our CLA. | ||
|
||
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). | ||
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or | ||
contact [[email protected]](mailto:[email protected]) with any additional questions or comments. | ||
|
||
## How to make a good bug report | ||
|
||
When you submit an issue to [GitHub](https://github.com/microsoft/FLAML/issues), please do your best to | ||
follow these guidelines! This will make it a lot easier to provide you with good | ||
feedback: | ||
|
||
- The ideal bug report contains a short reproducible code snippet. This way | ||
anyone can try to reproduce the bug easily (see [this](https://stackoverflow.com/help/mcve) for more details). If your snippet is | ||
longer than around 50 lines, please link to a [gist](https://gist.github.com) or a GitHub repo. | ||
|
||
- If an exception is raised, please **provide the full traceback**. | ||
|
||
- Please include your **operating system type and version number**, as well as | ||
your **Python, flaml, scikit-learn versions**. The version of flaml | ||
can be found by running the following code snippet: | ||
```python | ||
import flaml | ||
print(flaml.__version__) | ||
``` | ||
|
||
- Please ensure all **code snippets and error messages are formatted in | ||
appropriate code blocks**. See [Creating and highlighting code blocks](https://help.github.com/articles/creating-and-highlighting-code-blocks) | ||
for more details. | ||
|
||
|
||
## Becoming a Reviewer | ||
|
||
There is currently no formal reviewer solicitation process. Current reviewers identify reviewers from active contributors. If you are willing to become a reviewer, you are welcome to let us know on gitter. | ||
|
||
## Developing | ||
|
||
### Setup | ||
|
||
```bash | ||
git clone https://github.com/microsoft/FLAML.git | ||
pip install -e FLAML[test,notebook] | ||
``` | ||
|
||
In case the `pip install` command fails, try escaping the brackets such as `pip install -e FLAML\[test,notebook\]` | ||
|
||
### Docker | ||
|
||
We provide a simple [Dockerfile](https://github.com/microsoft/FLAML/blob/main/Dockerfile). | ||
|
||
```bash | ||
docker build https://github.com/microsoft/FLAML.git#main -t flaml-dev | ||
docker run -it flaml-dev | ||
``` | ||
|
||
### Develop in Remote Container | ||
|
||
If you use vscode, you can open the FLAML folder in a [Container](https://code.visualstudio.com/docs/remote/containers). | ||
We have provided the configuration in [devcontainer](https://github.com/microsoft/FLAML/blob/main/.devcontainer). | ||
|
||
### Pre-commit | ||
|
||
Run `pre-commit install` to install pre-commit into your git hooks. Before you commit, run | ||
`pre-commit run` to check if you meet the pre-commit requirements. If you use Windows (without WSL) and can't commit after installing pre-commit, you can run `pre-commit uninstall` to uninstall the hook. In WSL or Linux this is supposed to work. | ||
|
||
### Coverage | ||
|
||
Any code you commit should not decrease coverage. To run all unit tests: | ||
|
||
```bash | ||
coverage run -m pytest test | ||
``` | ||
|
||
Then you can see the coverage report by | ||
`coverage report -m` or `coverage html`. | ||
|
||
### Documentation | ||
|
||
To build and test documentation locally, install [Node.js](https://nodejs.org/en/download/). For example, | ||
|
||
```bash | ||
nvm install --lts | ||
``` | ||
|
||
Then: | ||
|
||
```console | ||
npm install --global yarn # skip if you use the dev container we provided | ||
pip install pydoc-markdown==4.5.0 # skip if you use the dev container we provided | ||
cd website | ||
yarn install --frozen-lockfile --ignore-engines | ||
pydoc-markdown | ||
yarn start | ||
``` | ||
|
||
The last command starts a local development server and opens up a browser window. | ||
Most changes are reflected live without having to restart the server. | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add instructions about what to do about the documentation around a new version. |
||
Note: | ||
some tips in this guide are based off the contributor guide from [ray](https://docs.ray.io/en/latest/ray-contribute/getting-involved.html), [scikit-learn](https://scikit-learn.org/stable/developers/contributing.html), or [hummingbird](https://github.com/microsoft/hummingbird/blob/main/CONTRIBUTING.md). |
62 changes: 62 additions & 0 deletions
62
website/versioned_docs/version-1.0.4/Examples/AutoML-Classification.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
# AutoML - Classification | ||
|
||
### A basic classification example | ||
|
||
```python | ||
from flaml import AutoML | ||
from sklearn.datasets import load_iris | ||
|
||
# Initialize an AutoML instance | ||
automl = AutoML() | ||
# Specify automl goal and constraint | ||
automl_settings = { | ||
"time_budget": 1, # in seconds | ||
"metric": 'accuracy', | ||
"task": 'classification', | ||
"log_file_name": "iris.log", | ||
} | ||
X_train, y_train = load_iris(return_X_y=True) | ||
# Train with labeled input data | ||
automl.fit(X_train=X_train, y_train=y_train, | ||
**automl_settings) | ||
# Predict | ||
print(automl.predict_proba(X_train)) | ||
# Print the best model | ||
print(automl.model.estimator) | ||
``` | ||
|
||
#### Sample of output | ||
``` | ||
[flaml.automl: 11-12 18:21:44] {1485} INFO - Data split method: stratified | ||
[flaml.automl: 11-12 18:21:44] {1489} INFO - Evaluation method: cv | ||
[flaml.automl: 11-12 18:21:44] {1540} INFO - Minimizing error metric: 1-accuracy | ||
[flaml.automl: 11-12 18:21:44] {1577} INFO - List of ML learners in AutoML Run: ['lgbm', 'rf', 'catboost', 'xgboost', 'extra_tree', 'lrl1'] | ||
[flaml.automl: 11-12 18:21:44] {1826} INFO - iteration 0, current learner lgbm | ||
[flaml.automl: 11-12 18:21:44] {1944} INFO - Estimated sufficient time budget=1285s. Estimated necessary time budget=23s. | ||
[flaml.automl: 11-12 18:21:44] {2029} INFO - at 0.2s, estimator lgbm's best error=0.0733, best estimator lgbm's best error=0.0733 | ||
[flaml.automl: 11-12 18:21:44] {1826} INFO - iteration 1, current learner lgbm | ||
[flaml.automl: 11-12 18:21:44] {2029} INFO - at 0.3s, estimator lgbm's best error=0.0733, best estimator lgbm's best error=0.0733 | ||
[flaml.automl: 11-12 18:21:44] {1826} INFO - iteration 2, current learner lgbm | ||
[flaml.automl: 11-12 18:21:44] {2029} INFO - at 0.4s, estimator lgbm's best error=0.0533, best estimator lgbm's best error=0.0533 | ||
[flaml.automl: 11-12 18:21:44] {1826} INFO - iteration 3, current learner lgbm | ||
[flaml.automl: 11-12 18:21:44] {2029} INFO - at 0.6s, estimator lgbm's best error=0.0533, best estimator lgbm's best error=0.0533 | ||
[flaml.automl: 11-12 18:21:44] {1826} INFO - iteration 4, current learner lgbm | ||
[flaml.automl: 11-12 18:21:44] {2029} INFO - at 0.6s, estimator lgbm's best error=0.0533, best estimator lgbm's best error=0.0533 | ||
[flaml.automl: 11-12 18:21:44] {1826} INFO - iteration 5, current learner xgboost | ||
[flaml.automl: 11-12 18:21:45] {2029} INFO - at 0.9s, estimator xgboost's best error=0.0600, best estimator lgbm's best error=0.0533 | ||
[flaml.automl: 11-12 18:21:45] {1826} INFO - iteration 6, current learner lgbm | ||
[flaml.automl: 11-12 18:21:45] {2029} INFO - at 1.0s, estimator lgbm's best error=0.0533, best estimator lgbm's best error=0.0533 | ||
[flaml.automl: 11-12 18:21:45] {1826} INFO - iteration 7, current learner extra_tree | ||
[flaml.automl: 11-12 18:21:45] {2029} INFO - at 1.1s, estimator extra_tree's best error=0.0667, best estimator lgbm's best error=0.0533 | ||
[flaml.automl: 11-12 18:21:45] {2242} INFO - retrain lgbm for 0.0s | ||
[flaml.automl: 11-12 18:21:45] {2247} INFO - retrained model: LGBMClassifier(learning_rate=0.2677050123105203, max_bin=127, | ||
min_child_samples=12, n_estimators=4, num_leaves=4, | ||
reg_alpha=0.001348364934537134, reg_lambda=1.4442580148221913, | ||
verbose=-1) | ||
[flaml.automl: 11-12 18:21:45] {1608} INFO - fit succeeded | ||
[flaml.automl: 11-12 18:21:45] {1610} INFO - Time taken to find the best model: 0.3756711483001709 | ||
``` | ||
|
||
### A more advanced example including custom learner and metric | ||
|
||
[Link to notebook](https://github.com/microsoft/FLAML/blob/main/notebook/automl_classification.ipynb) | [Open in colab](https://colab.research.google.com/github/microsoft/FLAML/blob/main/notebook/automl_classification.ipynb) |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't version this file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Jeet and Sai told me that they have tried to move this file out of the versioned folder, but they need to change the docusaurus.config.js file, otherwise the website won't render. The docusaurus website also didn't provide a good example of how to change the config file, essentially because the only non-versioned file is under the "Community" tab (https://docusaurus.io/docs/versioning), which is in parallel of the other tabs. The FLAML structure is more complicated (since the versioned and unversioned file are under the same Docs tab), and they are not sure how to adjust the docusaurus.config.js file.