The main aim of the project is to demonsrate modular coding with necessary logging info and exception handling, along with AWS deployment. This project predicts student exam performance based on various demographic and educational factors using a machine learning model. It is built using Flask for the web interface and AWS BeanStalk for deployment.
AWS BeanStalk Deployment AWS Deployment Link (If the link does not work try removing s from https url)
The Student Exam Performance Indicator aims to predict students' mathematics scores based on input features such as gender, ethnicity, parental education, lunch type, and preparation course completion status. The prediction model is a neural network trained using TensorFlow.
- Input: Demographic and educational details (Gender, Race/Ethnicity, Parental Education, etc.)
- Output: Predicted Math Score
- Model: Pre-trained Neural Network model saved as
model.h5 - Web Interface: Two UI options - Flask-based interface and a more interactive AWS BeanStalk deployement UI.
MLProject/
├── data/
│ └── external/ # External data sources.
├── notebooks/ # Jupyter notebooks for exploration and analysis.
├── src/ # Source code for the project.
│ ├── __init__.py # Makes src a Python module.
│ ├── components/ # Scripts for data ingestion, transformation, and model training.
│ ├── pipeline/ # Scripts for predict and train pipeline.
│ ├── exception.py # Script to raise custom exceptions.
│ └── logger.py # Script for logging information.
├── artifacts/ # Contains train, test CSV files and .pkl files for preprocessing and scaling.
├── requirements.txt # Python package dependencies.
├── README.md # Project documentation (this file).
└── .gitignore # Ignored files and directories.
- Python 3.8+
- pip for managing Python packages
- Clone the repository:
git clone https://github.com/modiparth527/mlproject cd student_exam_performance - Create and activate a virtual environment (optional but recommended):
conda create -p venv python==3.8 conda activate venv
- Install Dependencies
pip install -r requirements.txt
- Ensure the pre-trained model
model.h5is present in the root directory. If not, followdata_ingestion.pyscript fot training the model insrc/compoenentsfolder.
- Run the Flask app:
python app.py
- Access the web interface: Open your web browser and go to:
http://localhost:5000
Contributions are welcome! If you'd like to contribute, please follow these steps:
- Fork the repository to your own GitHub account.
- Create a new branch for your feature or fix:
git checkout -b feature/AmazingFeature
- Make your changes and commit them:
git commit -m 'Add some AmazingFeature' - Push to the branch
git push origin feature/AmazingFeature
- Open a pull request on the original repository
This project is licensed under the MIT License. See the LICENSE file for more information.
