{"id":20732510,"url":"https://github.com/ammarlodhi255/student_performance_indicator_end-to-end_implementation","last_synced_at":"2025-09-27T16:31:10.593Z","repository":{"id":152557809,"uuid":"625355418","full_name":"ammarlodhi255/student_performance_indicator_end-to-end_implementation","owner":"ammarlodhi255","description":"An end-to-end machine learning project, student performance indicator. The goal of this project is to understand the influence of the parents background, test preparation, and various other variables on the students performance.","archived":false,"fork":false,"pushed_at":"2023-04-15T05:21:03.000Z","size":2099,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-09T06:39:12.281Z","etag":null,"topics":["aws","cd-pipeline","data-analysis","data-science","data-science-projects","eda","end-to-end-machine-learning","machine-learning","machine-learning-projects","regression","regression-analysis"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ammarlodhi255.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-08T21:21:48.000Z","updated_at":"2024-11-05T09:47:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"70681ced-42af-4435-b82e-9ab39b481085","html_url":"https://github.com/ammarlodhi255/student_performance_indicator_end-to-end_implementation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ammarlodhi255/student_performance_indicator_end-to-end_implementation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ammarlodhi255%2Fstudent_performance_indicator_end-to-end_implementation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ammarlodhi255%2Fstudent_performance_indicator_end-to-end_implementation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ammarlodhi255%2Fstudent_performance_indicator_end-to-end_implementation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ammarlodhi255%2Fstudent_performance_indicator_end-to-end_implementation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ammarlodhi255","download_url":"https://codeload.github.com/ammarlodhi255/student_performance_indicator_end-to-end_implementation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ammarlodhi255%2Fstudent_performance_indicator_end-to-end_implementation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277260138,"owners_count":25788572,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-27T02:00:08.978Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","cd-pipeline","data-analysis","data-science","data-science-projects","eda","end-to-end-machine-learning","machine-learning","machine-learning-projects","regression","regression-analysis"],"created_at":"2024-11-17T05:19:45.420Z","updated_at":"2025-09-27T16:31:10.581Z","avatar_url":"https://github.com/ammarlodhi255.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Student Performance Indicator\n\n### Information About the Dataset:\n\n**The dataset** The goal of this project is to understand the influence of the parents background, test preparation, and various other variables on the students math score.\n\nThere are 8 independent variables:\n\n- `gender` : Sex of a student (Male/Female)\n- `race/ethnicity` : Ethnicity of a student (Group A,B,C,D,E)\n- `parental level of education` : parents' final education (bachelor's degree,some college,master's degree,associate's degree,high school)\n- `lunch` : What type of lunch the student had before test (standard or free/reduced)\n- `test preparation course` : Whether the student completed any preparation course before the test.\n- `reading score` : Reading score obtained by the student.\n- `writing score` : Writing score obtained by the student.\n\nTarget variable:\n\n- `math score`: Math score of a student.\n\nDataset Source Link :\n[https://www.kaggle.com/datasets/spscientist/students-performance-in-exams?resource=download](https://www.kaggle.com/datasets/spscientist/students-performance-in-exams?resource=download)\n\n# Animation of UI\n\n![HomepageUI](./screenshots/stdperformanceindicator.gif)\n\n# Project Development Approach\n\n1. Data Ingestion :\n\n   - In Data Ingestion phase the data is first read as csv.\n   - Then the data is split into training and testing and saved as csv file.\n\n2. Data Transformation :\n\n   - In this phase a ColumnTransformer Pipeline is created.\n   - for Numeric Variables first SimpleImputer is applied with strategy median (because there were some outliers in the data), then standard scaling is performed on numeric data.\n   - for Categorical Variables SimpleImputer is applied with most frequent strategy, then one-hot-encoding is performed, after this data is scaled with standard scaler.\n   - This preprocessor is saved as pkl file inside the artifacts folder.\n\n3. Model Training :\n\n   - In this phase, all the models are trained and evaluated. The best model found was Linear Regression.\n   - After this hyperparameter tuning is also performed prior to selecting the best model.\n   - This model is saved as pickle file to be used for the predict pipeline.\n\n4. Prediction Pipeline :\n   - This pipeline converts given data into dataframe and has various functions to load pickle files and predict the final results in python.\n\n5. Flask App creation :\n   - Flask app is created with User Interface to predict the math score of a student given the required features inside a Web Application.\n\n# Exploratory Data Analysis Notebook\n\nLink : [EDA Notebook](./notebook/eda_on_data.ipynb)\n\n# Model Training Approach Notebook\n\nLink : [Model Training Notebook](./notebook/model_training.ipynb)\n\n# Usage:\n\n1. conda create -p std python=3.8 -y\n2. conda activate std/\n3. pip install -r requirements.txt\n4. Execute app.py\n5. Access http://127.0.0.1:5000/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fammarlodhi255%2Fstudent_performance_indicator_end-to-end_implementation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fammarlodhi255%2Fstudent_performance_indicator_end-to-end_implementation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fammarlodhi255%2Fstudent_performance_indicator_end-to-end_implementation/lists"}