Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 UCI Students Performance Analysis

This Jupyter Notebook (student_performance.ipynb) focuses on the preprocessing steps for a student performance dataset. The goal of this project is to prepare the data for potential machine learning models that predict student grades (G1, G2, G3).


🫡 Dataset Courtesy

The notebook utilizes a dataset named student-mat.csv from the student.zip archive of UCI Machine Learning Repository. This dataset contains various student attributes, their grades in two periods (G1, G2) and final grade (G3).


📊 Project Overview

This project analyzes student performance data to understand patterns and build predictive models for academic outcomes. Using various machine learning algorithms, we explore relationships between different factors and student performance, providing insights that could help educators and institutions improve student success rates.


🎯 Objectives

  • Analyze student performance data to identify key patterns and trends
  • Build and compare multiple machine learning models for performance prediction
  • Evaluate which factors most significantly impact student academic success
  • Provide actionable insights for educational stakeholders

🛠️ Technologies Used

Data Manipulation & Analysis

  • NumPy: Numerical computing and array operations
  • Pandas: Data manipulation and analysis

Data Visualization

  • Matplotlib: Creating charts, graphs, and visualizations

Machine Learning

  • Scikit-learn: Complete machine learning toolkit including:
    • Linear Regression: Basic linear relationship modeling
    • Ridge Regression: Regularized linear regression for better generalization
    • Elastic Net Regression: Combines lasso and ridge regression
    • Polynomial Features: Capturing non-linear relationships
    • Decision Tree Regressor: Tree-based decision making models
    • Voting Regressor: Ensemble method combining multiple models
    • Bagging Regressor: Ensemble method for improved accuracy
    • AdaaBoost Regressor: Boosting algorithm for improved accuracy

Data Preprocessing

  • StandardScaler: Feature normalization and scaling
  • Pipeline: Streamlined preprocessing and modeling workflows
  • PCA: Principal Component Analysis for dimensionality reduction

Model Evaluation

  • Root Mean Squared Error (RMSE): Performance metric for regression models
  • R2 Score: Model performance metric

📁 Project Structure

uci-students-performance/
│
├── student_performance.ipynb   # Main analysis notebook
├── README.md                   # Project documentation
└── student_dataset             # Dataset files

🚀 Getting Started

Prerequisites

Make sure you have Python 3.7+ installed along with Jupyter Notebook or JupyterLab.


Installation

Install required packages:

pip install numpy pandas matplotlib scipy scikit-learn

Running the Analysis

  1. Launch Jupyter Notebook
  2. Open student_performance.ipynb and run the cells sequentially

📈 Analysis Workflow

  1. Data Loading & Exploration: Import and examine the student performance dataset
  2. Data Preprocessing: Clean, scale, and prepare data for modeling
  3. Exploratory Data Analysis: Visualize patterns and relationships in the data
  4. Feature Engineering: Create and select relevant features for modeling
  5. Model Building: Train multiple machine learning algorithms
  6. Model Evaluation: Compare performance using RMSE and other metrics
  7. Results Interpretation: Analyze findings and draw actionable insights

🔍 Machine Learning Models

This project implements and compares several regression algorithms:

  • Linear Regression: Baseline model for linear relationships
  • Ridge Regression: Handles overfitting with regularization
  • Polynomial Regression: Captures non-linear patterns
  • Elastic Net Regression: Uses the penalties from both the lasso and ridge techniques to regularize regression models
  • Decision Tree: Non-parametric model for complex relationships
  • Voting Regressor: Ensemble method combining multiple models
  • Bagging Regressor: Ensemble method for improved accuracy
  • AdaBoost Regressor: Boosting algorithm for improved accuracy

📊 Expected Outcomes

  • Identification of key factors affecting student performance
  • Comparison of different machine learning approaches
  • Predictive models for student academic success
  • Data-driven recommendations for educational improvement

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • UCI Machine Learning Repository for providing the student performance dataset
  • Scikit-learn community for excellent machine learning tools
  • Contributors and maintainers of all open-source libraries used in this project

⭐ If you found this project helpful, please consider giving it a star!

About

This project analyzes the academic performance of students using a real-world dataset from the UCI Machine Learning Repository. The focus is on understanding the relationships between student attributes and their final grades through exploratory data analysis and machine learning.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages