From aef7ce058b0d93e488f6ee9c1908cfc3c7bf3928 Mon Sep 17 00:00:00 2001 From: Gabriel Caldas <87482328+gabrielgcbs@users.noreply.github.com> Date: Tue, 13 Jun 2023 03:25:41 -0300 Subject: [PATCH 1/2] Update README.md --- README.md | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 82 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bfb8bbe..f16db00 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,83 @@ -# predict-me +# 🤖 Predict4me A web Artificial Intelligence model for everyone - just upload your dataset and let it predict for you + +--- + +ℹī¸ **ATTENTION**: The fork on [@gcbsdev](https://github.com/gcbsdev) is meant to be read-only and its purpose is for streaming the app to [Streamlit Community Cloud](https://streamlit.io/cloud). When submitting a Pull Request or opening and Issue, please always refer to the repo in [@gabrielgcbs](https://github.com/gabrielgcbs/predict-for-me) + +## ❓ What is Predict4me? +Predict4me is a web Machine Learning app built with Python and [Streamlit](https://streamlit.io) + +It implements a simple user-friendly interface that let's you upload your data and click one button to train a model and predict the data. + +> Note that the purporse of Predict4me is to help those who are not experienced with Machine Learning predict their data without needing to code a model, thus it is not suited for more complex predictions or model engineering. + +Currently, the app covers only the two Supervised Learning problems, which are: +- Classification +- Regression + +The models implemented are: +- Random Forest (for classification tasks) +- Histogram-based Gradient Boosting Regression Tree (for regression tasks) + +ℹī¸ For more information about how these models work, please refer to scikit-learn official documentation: [RandomForest](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html#sklearn.ensemble.RandomForestClassifier), [HistGradientBoostingRegressor](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.HistGradientBoostingRegressor.html#sklearn.ensemble.HistGradientBoostingRegressor) + +## 🏁 Quick Start + +### 🏎ī¸ How to run the app on your browser? + +- Visit [predict4me app](https://gcbsdev-predict-for-me.streamlit.app/) +- Select the type of task you wish: **Classification** or **Regression** (not sure which one to choose? Have a look at [this tutorial](https://machinelearningmastery.com/classification-versus-regression-in-machine-learning/)) +- Upload your data: + - The requirements to get the model running on your data are: + - File format: csv + - The data needs to have at least one feature column + - The data needs to have only one target column (this may change in the future) + - Nominal categorical features **must** be specified, if there are any + - Numerical categorical features **do not** need to be specified + - It is advised to clean the data before jumping on the model + - You must submit one file for training the model (step 1), and one file containg the actual data you want to predict (step 2) + - For example, if you want to predict the house pricing on a city, provide a dataset with information about houses in the area and their prices on step 1, and a dataset with the information about the house you want to predict on step 2 +- If there are any nominal features (i.e. *strings*), provide their names on step 3 +- Click on *RUN MODEL* +- Save the results as a csv file + +### đŸ’ģ How to install and run the app locally? +Install Python >= 3.9 + +Clone the repository: +``` shell +$ git clone https://github.com/gabrielgcbs/predict-for-me +``` + +ℹī¸ Recommended: Create and activate a virtual environment + +On Windows: +``` shell +C:\> python -m venv .venv +C:\> .venv\Scripts\activate.bat +``` + +On Linux: +``` shell +$ python -m venv .venv +$ source .venv/bin/activate +``` + +Install the dependencies: +``` shell +$ pip install requirements.txt +``` + +Run the app: +``` shell +$ streamlit run src/main.py +``` + +### ❤ī¸ Guidelines for contributing + +Contributions are welcomed. For that, please follow this simple guidelines: +- Check if there is already an issue opened +- If not, create an issue to describe your request and specify a label for it, e.g *bug*, *feature* or *documentation* +- If you want to make some changes on the code, create a pull request and link it to an existing issue: + - Documentation is important, so for each significant changes made on the code, please provide a documentation about it, both in-code and on the pull request itself From 5eff6dac1782d729c3a714e316be2be9596165e9 Mon Sep 17 00:00:00 2001 From: Gabriel Caldas <87482328+gabrielgcbs@users.noreply.github.com> Date: Tue, 13 Jun 2023 03:27:43 -0300 Subject: [PATCH 2/2] Update Predict4Me name on web app --- src/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.py b/src/main.py index bbfda16..450cbcb 100644 --- a/src/main.py +++ b/src/main.py @@ -163,7 +163,7 @@ def main(): st.write( """ - # :robot_face: PredictMe + # :robot_face: Predict4Me > A web Artificial Intelligence model for everyone - just upload your dataset and let it predict for you """ ) @@ -259,4 +259,4 @@ def main(): ) if __name__ == '__main__': - main() \ No newline at end of file + main()