https://github.com/alphacrypto246/rainfall-prediction
This project incorporates the use of a Random Forest Classifier for predictive modeling, MLflow for model tracking and experiment management, and a Flask web application to serve the model for user interaction.
https://github.com/alphacrypto246/rainfall-prediction
Last synced: about 1 month ago
JSON representation
This project incorporates the use of a Random Forest Classifier for predictive modeling, MLflow for model tracking and experiment management, and a Flask web application to serve the model for user interaction.
- Host: GitHub
- URL: https://github.com/alphacrypto246/rainfall-prediction
- Owner: alphacrypto246
- Created: 2025-01-02T05:59:01.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-02T06:26:23.000Z (over 1 year ago)
- Last Synced: 2025-11-12T21:23:07.341Z (8 months ago)
- Language: Jupyter Notebook
- Homepage:
- Size: 703 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Rainfall Prediction
## Project Overview
The **Rainfall Prediction** project leverages machine learning techniques to predict rainfall based on various environmental factors. This project incorporates the use of a **Random Forest Classifier** for predictive modeling, **MLflow** for model tracking and experiment management, and a **Flask** web application to serve the model for user interaction.
---
## Features
- **Random Forest Classifier**: Utilized to build an accurate and robust rainfall prediction model.
- **MLflow**: Integrated for tracking experiments, storing model artifacts, and managing the machine learning lifecycle.
- **Flask Application**: Provides an interactive interface for users to input data and receive rainfall predictions.
---
## Tools and Technologies
- **Python**
- **Scikit-learn**
- **MLflow**
- **Flask**
- **Pandas**
- **NumPy**
- **Matplotlib** / **Seaborn** (for visualization, if applicable)
---
## Project Structure
```
Rainfall-Prediction/
|-- data/ # Dataset files
|-- models/ # Saved machine learning models
|-- notebooks/ # Jupyter notebooks for EDA and experimentation
|-- app.py # Flask application script
|-- requirements.txt # Python dependencies
|-- mlruns/ # MLflow tracking directory
|-- README.md # Project documentation (this file)
```
---
## Installation
1. Clone the repository:
```bash
git clone https://github.com/alphacrypto246/Rainfall-Prediction.git
cd Rainfall-Prediction
```
2. Create and activate a virtual environment:
```bash
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```
3. Install the required dependencies:
```bash
pip install -r requirements.txt
```
4. Set up MLflow tracking:
- Run the MLflow server locally:
```bash
mlflow ui
```
- Access the MLflow UI at `http://localhost:5000`.
5. Run the Flask application:
```bash
python app.py
```
- Access the application at `http://localhost:5000`.
---
## Usage
1. Open the Flask application in your browser.
2. Input the required environmental data (e.g., temperature, humidity, pressure, etc.).
3. Submit the form to receive a prediction on whether rainfall is expected.
---
## Dataset
- The dataset used for training the model includes features such as temperature, humidity, wind speed, and pressure.
- Ensure the dataset is placed in the `data/` directory before running the application.
---
## Model
- The **Random Forest Classifier** was trained using the processed dataset.
- Hyperparameter tuning and evaluation were tracked using **MLflow**.
- Model performance metrics include accuracy, precision, recall, and F1-score.
---
## Future Improvements
- Enhance the user interface for better usability.
- Deploy the application to a cloud platform (e.g., AWS, Heroku, or Azure).
- Experiment with additional machine learning models to improve prediction accuracy.
- Incorporate real-time weather data through APIs.
---
## Author
- **Arya Deep Chowdhury**
Feel free to connect with me on [LinkedIn](https://www.linkedin.com/in/aryadeepchowdhury/) or reach out via email for any questions or suggestions.
---
## Acknowledgements
- Scikit-learn documentation for clear guidance on model implementation.
- Flask and MLflow communities for providing excellent resources and support.
- [Kaggle](https://www.kaggle.com/) for dataset inspiration and ideas.