Dataset
Source: https://www.kaggle.com/datasets/laveshjadon/ai-impact-on-students
License: CC0: Public Domain, free to use, modify, and redistribute without restriction or attribution.
This dataset has student survey records with demographic, study, and AI usage information.
Project Goal
This project prepares the dataset for predictive modeling and trains a logistic regression model to predict simplified levels of perceived AI dependency.
Files
features.py- loads raw data, removes duplicates/nulls, mapsYear_of_Study, and savespreprocessed_data.csv.eda.py- loads preprocessed data and prints correlation and categorical summaries against burnout risk.train_model.py- trains and evaluates logistic regression with encoded/scaled features.tests/test_pipeline.py- automated tests for preprocessing, target mapping validation, and training flow.
Preprocessing Steps
- Load
ai_student_impact_dataset.csv. - Remove duplicate rows.
- Remove rows with missing values.
- Map
Year_of_Studyfrom text to ordinal numbers. - Save cleaned data to
preprocessed_data.csv.
Model Pipeline
Target (Perceived_AI_Dependency) is simplified into 3 classes:
- Low = 1, 2, 3
- Medium = 4, 5, 6, 7
- High = 8, 9, 10
Features used:
Year_of_StudyWeekly_GenAI_Hours(log transformed)Traditional_Study_HoursAnxiety_Level_During_ExamsSkill_Retention_ScoreInstitutional_Policy(one-hot encoded)
Other pipeline details:
- Train/test split with stratification
- Numeric scaling with
MinMaxScaler - Logistic regression with
max_iter=1000 - Validation check to fail fast if target has unmapped values
Exploratory Data Analysis
eda.py also saves a bar chart of numeric feature correlations with Burnout_Risk_Level.
Model Performance
Latest run on the provided dataset:
- Baseline accuracy (majority class): 0.5331
- Logistic regression accuracy: 0.6821
The model performs above baseline, and the 3-class target is more stable than the original 10-level target.
Key Findings
- Weekly time spent using GenAI tools is the strongest signal for burnout. Students who use AI tools more hours per week tend to report higher burnout risk more than any other factor measured.
- Self-reported AI dependency is the second strongest signal. Students who say they rely more heavily on AI also tend to report more burnout.
- Exam anxiety and year of study matter, but less. These have a moderate relationship with burnout, but nowhere near as strong as AI usage hours or dependency.
- Traditional study habits, GPA, and skill retention are only weakly related to burnout on their own.
- The model correctly predicts a student's AI dependency level (Low / Medium / High) about 68% of the time, compared to 53% if you just guessed the most common category every time. That's a meaningful improvement, not a huge one, useful as a starting signal, not a definitive diagnosis.
Reproducibility
Requires Python 3.10 or newer (minimum supported by numpy==2.2.6 and scikit-learn==1.7.2).
From the project directory:
pip install -r requirements.txt
py features.py
py eda.py
py train_model.py
Run tests:
py -m unittest discover -s tests -p "test_*.py"
Test Coverage
Automated tests currently verify:
- Preprocessing output is created and year mapping is applied.
- Invalid target values raise a clear error.
- Training pipeline fits and returns valid metrics.
Continuous Integration
.github/workflows/tests.yml runs the test suite automatically on every push and pull request to main, using GitHub Actions (GitHub's hosted CI service). It provisions a clean Ubuntu VM, installs requirements.txt, then runs the same unittest discover command shown above. This catches regressions before they reach main without requiring anyone to remember to test manually.
Limitations
- Current cleaning drops all rows with null values.
- Evaluation is based on one train/test split.
- Logistic regression is used as a strong baseline, not a final model search.
Next Improvements
- Add cross-validation.
- Add model artifact saving and a simple inference script.
- Add schema checks for real dataset columns.
License
This project is licensed under the MIT License.