student-performance-predictor

0
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
README.md

Student Performance Predictor 🤖📊

Tests Daily Report Python Version License: MIT

AI-powered system for predicting student academic performance and identifying at-risk students

🎯 Problem Solved

This project addresses a critical challenge in modern education: predicting student performance to enable early intervention and personalized support. Using machine learning, it analyzes various factors affecting academic success and provides actionable insights for educators.

Key Benefits:

  • 🔍 Early Warning System: Identify at-risk students before they fail
  • 📈 Performance Analytics: Understand factors influencing academic success
  • 🎯 Personalized Recommendations: Data-driven insights for student support
  • 📊 Automated Reporting: Daily analysis with visual dashboards

🚀 Quick Start

Installation

Basic Usage

Python API

📊 Example Results

Model Performance Comparison

ModelR² ScoreRMSEMAE
Random Forest0.92343.212.45
Gradient Boosting0.89124.123.11
Linear Regression0.82345.674.23

Feature Importance

The analysis reveals that the most important factors for student performance are:

  1. Study Time (Importance: 0.324)
  2. Previous Grade (Importance: 0.287)
  3. Absences (Importance: 0.198)
  4. Parental Support (Importance: 0.124)
  5. Age (Importance: 0.067)

📁 Project Structure

student-performance-predictor/ ├── src/ # Source code │ ├── __init__.py │ ├── main.py # CLI entry point │ ├── data_processor.py # Data preprocessing │ ├── predictor.py # ML models and prediction │ └── visualizer.py # Visualization tools ├── tests/ # Unit tests │ ├── test_data_processor.py │ └── test_predictor.py ├── data/ # Sample datasets │ └── sample_student_data.csv ├── docs/ # Documentation ├── scripts/ # Utility scripts ├── .github/workflows/ # CI/CD workflows │ ├── tests.yml # Main test workflow │ └── daily_report.yml # Scheduled report generation ├── reports/ # Generated reports (gitignored) ├── requirements.txt # Python dependencies ├── .gitignore # Git ignore rules └── README.md # This file

🧪 Testing

Run the comprehensive test suite:

🔄 CI/CD Features

1. Automated Testing (
.gitverse/workflows/tests.yml
)

  • ✅ Runs on every push/PR
  • ✅ Multi-version Python testing (3.9, 3.10, 3.11)
  • ✅ Code quality checks (flake8, black, isort)
  • ✅ Unit tests with coverage
  • ✅ Artifact upload for reports

2. Daily Automated Reports (
.gitverse/workflows/daily_report.yml
)

  • 📅 Scheduled: Runs daily at 2 AM UTC
  • 🎛️ Manual Trigger: Can be run on-demand with custom parameters
  • 📦 Artifacts: Saves reports and visualizations
  • 🚀 Auto-deploy: Publishes to GitHub Pages
  • 📝 Auto-commit: Updates repository with latest reports

Features:

  • Automatic performance analysis
  • Interactive dashboards
  • Model comparison charts
  • Feature importance analysis
  • GitHub Pages deployment

📈 Visualizations Generated

The system creates comprehensive visualizations:

  1. Correlation Matrix: Shows relationships between features
  2. Feature Importance: Identifies key performance drivers
  3. Model Comparison: Compares different algorithms
  4. Predictions vs Actual: Validates model accuracy
  5. Performance Distribution: Shows score distributions
  6. Interactive Dashboard: Plotly-based interactive analysis

🎓 Educational Use Cases

For Teachers:

  • Identify students needing additional support
  • Understand factors affecting class performance
  • Generate automated progress reports

For Students:

  • Get personalized performance predictions
  • Understand how study habits affect grades
  • Receive targeted improvement recommendations

For Administrators:

  • Analyze school-wide performance trends
  • Evaluate intervention program effectiveness
  • Generate institutional reports

🔧 Configuration

Data Format

Your CSV should include these columns:

  • age
    : Student age
  • gender
    : Student gender (M/F)
  • study_time
    : Weekly study hours
  • absences
    : Number of absences
  • parental_support
    : Level of parental support (High/Medium/Low)
  • extracurricular
    : Participation in extracurricular activities (Yes/No)
  • previous_grade
    : Previous semester grade
  • performance_score
    : Target variable (current performance)

Customization

📊 Sample Data

The project includes

data/sample_student_data.csv
with 50 synthetic student records for testing and demonstration.

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (
    git checkout -b feature/amazing-feature
    )
  3. Commit your changes (
    git commit -m 'Add amazing feature'
    )
  4. Push to the branch (
    git push origin feature/amazing-feature
    )
  5. Open a Pull Request

📝 License

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

🙏 Acknowledgments

  • Built with scikit-learn, pandas, and plotly
  • Inspired by educational data mining research
  • Deployed using GitHub Actions and GitHub Pages

📞 Support

For questions and support:


⭐ Star this repo if you find it helpful!