This project is a machine learning-powered web application that predicts the chance of admission to UCLA graduate school based on applicant data. It leverages a Kaggle dataset and demonstrates a full ML workflow, including data ingestion, transformation, model training, and deployment using Flask.
- Interactive Web App: Users can input their academic and research credentials to get real-time predictions of their admission chances.
- Robust ML Pipeline: Includes data cleaning, preprocessing, feature engineering, and model selection.
- Custom Exception Handling: All errors are managed with detailed custom exceptions for easier debugging and reliability.
- Logging: Key steps and errors are logged for traceability.
- Packaging & Deployment: The project is structured for easy packaging and deployment, including AWS Elastic Beanstalk support.
- Model Selection: Multiple regression models are evaluated (Random Forest, Decision Tree, Gradient Boosting, Linear Regression, XGBoost, CatBoost, AdaBoost), with hyperparameter tuning via GridSearchCV.
- Source: Kaggle - Graduate Admission Predict
- Columns: GRE Score, TOEFL Score, University Rating, SOP, LOR, CGPA, Research, Chance of Admi
- Data Ingestion: Loads and splits the Kaggle dataset into train/test sets.
- Data Transformation: Cleans column names, imputes missing values, scales features, and encodes categorical variables.
- Model Training: Trains and evaluates several regression models, saving the best-performing model.
- Prediction Pipeline: Loads the trained model and preprocessor to make predictions on new user input.
- Web Interface: Users enter their scores and credentials; the app returns the predicted chance of admission.
- Clone the repository
- Install dependencies
pip install -r requirements.txt
- Run the application
python application.py
- Access the app
- Visit
http://localhost:5000in your browser.
- Visit
- The project includes configuration files for deployment on AWS Elastic Beanstalk (
.ebextensions/python.config,pipeline.yml).
- Home Page: Enter GRE, TOEFL, University Rating, SOP, LOR, CGPA, and Research experience.
- Prediction: The app displays your predicted chance of admission as a percentage.
- EDA Graduate Admission.ipynb: Exploratory data analysis and visualization.
- Model Training.ipynb: Model training, evaluation, and comparison.
- Python, Flask, scikit-learn, pandas, numpy, CatBoost, XGBoost, AWS Elastic Beanstalk
class CustomException(Exception):
def __init__(self, error_message, error_detail: sys):
super().__init__(error_message)
self.error_message = error_message_detail(error_message, error_detail=error_detail)
def __str__(self):
return self.error_messageThis project is for educational purposes.
Author: Eddie Xiao