// github repoupdated February 24, 2026

Students-AI-Usage-Academic-Performance

Python 1 0

Utilisation de l'IA par les Étudiants & Performance Académique

Un projet complet d'analyse de données et d'apprentissage automatique (Machine Learning) qui examine comment l'utilisation des outils d'intelligence artificielle (IA) par les étudiants influence leur performance académique.

Jeu de données (Dataset) : Kaggle – Students AI Usage and Academic Performance


Structure du Projet

students_ai_analysis/
├── data/
│   ├── raw/                  # Données brutes (non modifiées)
│   │   └── students_ai_usage.csv
│   └── processed/            # Données nettoyées et transformées
├── notebooks/
│   ├── 01_data_loading_and_cleaning.ipynb   # Chargement et nettoyage
│   ├── 02_eda.ipynb                         # Analyse exploratoire (EDA)
│   └── 03_modeling.ipynb                    # Modélisation (ML)
├── src/
│   ├── __init__.py
│   ├── data_processing.py    # Chargement, nettoyage, ingénierie des variables
│   ├── visualization.py      # Fonctions de visualisation (graphiques)
│   ├── modeling.py           # Entraînement et évaluation des modèles
│   └── utils.py              # Fonctions utilitaires (chemins, sauvegarde)
├── models/                   # Modèles sauvegardés (créé automatiquement)
├── streamlit_app.py          # Tableau de bord interactif (Dashboard)
├── requirements.txt          # Dépendances Python (liste des bibliothèques)
├── environment.yml           # Environnement Conda (optionnel)
├── .gitignore                # Fichiers ignorés par Git
├── README.md                 # Ce fichier
└── LICENSE                   # Licence du projet (MIT)

Fonctionnalités

  • Chargement et Nettoyage des Données – Gestion des valeurs manquantes (NaN), standardisation des formats
  • Analyse Exploratoire (EDA = Exploratory Data Analysis) – Carte de chaleur des corrélations (heatmap), histogrammes, boîtes à moustaches (boxplots), nuages de points (scatter plots)
  • Ingénierie des Variables (Feature Engineering) – Création de nouvelles colonnes : changement de note, catégorie de performance, intensité d'étude
  • Modèles de Régression – Prédiction de grades_after_ai (note après IA) avec Régression Linéaire, Forêt Aléatoire (Random Forest), Gradient Boosting
  • Modèles de Classification – Prédiction de la catégorie de performance (Faible / Moyen / Élevé) avec Régression Logistique, Forêt Aléatoire, Gradient Boosting
  • Évaluation des Modèles – MAE (erreur absolue moyenne), MSE (erreur quadratique moyenne), RMSE (racine de MSE), R² pour la régression ; Accuracy (précision globale), F1 (score F1), matrices de confusion pour la classification
  • Tableau de Bord Streamlit (Dashboard) – Visualisations interactives, comparaison des modèles, prédictions en direct

Guide d'Installation

Prérequis

  • Python 3.8 – 3.13 (testé sur 3.10, 3.11 et 3.13)
  • pip – gestionnaire de paquets Python (inclus avec Python)
  • git – optionnel, pour cloner le dépôt (repository)

Option 1 : Utiliser venv + pip (Recommandé)

venv est un outil intégré à Python qui crée un environnement virtuel — un dossier isolé contenant ses propres bibliothèques Python, séparé du système.

Étape 1 – Créer un environnement virtuel :

# Windows
python -m venv venv
venv\Scripts\activate

# macOS / Linux
python3 -m venv venv
source venv/bin/activate

Après l'activation, votre terminal affiche (venv) au début de la ligne.

Étape 2 – Mettre à jour pip et installer les dépendances :

python -m pip install --upgrade pip setuptools wheel
pip install -r requirements.txt

Note Windows : Utilisez toujours python -m pip install --upgrade pip au lieu de pip install --upgrade pip pour éviter les erreurs de permission.

Étape 3 – Vérifier l'installation :

python -c "import pandas, sklearn, streamlit; print('Toutes les bibliothèques sont installées avec succès')"

Option 2 : Utiliser Conda

Conda est un gestionnaire d'environnements et de paquets alternatif à pip/venv.

conda env create -f environment.yml
conda activate students_ai

Utiliser le jeu de données Kaggle (Optionnel)

Le projet inclut un jeu de données représentatif dans data/raw/. Pour utiliser le jeu de données Kaggle complet :

  1. Téléchargez students_ai_usage.csv depuis Kaggle
  2. Remplacez le fichier dans data/raw/students_ai_usage.csv

Exécution du Projet

Notebooks Jupyter

Les notebooks (carnets de code interactifs) sont à exécuter dans l'ordre :

# Option A : Ouvrir dans VS Code (recommandé – aucune installation supplémentaire)
# Ouvrez les fichiers .ipynb et sélectionnez le kernel (noyau) venv

# Option B : Utiliser Jupyter dans le navigateur
pip install notebook
jupyter notebook notebooks/
  1. 01_data_loading_and_cleaning.ipynb – Charger, inspecter, nettoyer et sauvegarder les données traitées
  2. 02_eda.ipynb – Visualisations et analyse exploratoire
  3. 03_modeling.ipynb – Entraîner les modèles, évaluer, comparer et sauvegarder

Tableau de Bord Streamlit (Dashboard)

Streamlit est une bibliothèque Python qui transforme un script en application web interactive.

streamlit run streamlit_app.py

Le tableau de bord s'ouvre à l'adresse http://localhost:8501 avec quatre pages :

Page Description
Vue d'ensemble Résumé du jeu de données, métriques clés, aperçu des données
Analyse Exploratoire (EDA) Histogrammes, carte de corrélation, comparaisons interactives
Performance des Modèles Métriques de régression et classification, importance des variables
Prédiction Saisir les informations d'un étudiant et obtenir la performance prédite

Résolution de Problèmes

Erreurs Courantes d'Installation

pip install échoue avec des conflits de versions :

pip install --upgrade pip setuptools wheel
pip install -r requirements.txt

Si une version spécifique échoue :

# Essayer sans contrainte de version
pip install pandas numpy scikit-learn matplotlib seaborn streamlit ipykernel

ModuleNotFoundError: No module named 'sklearn' (module introuvable) :

pip install scikit-learn

ImportError avec numpy sur Python 3.11 :

pip install numpy>=1.24.0

Streamlit ne démarre pas / port déjà utilisé :

streamlit run streamlit_app.py --server.port 8502

Erreur de chemin trop long sur Windows (long path) :

Si vous voyez OSError: [Errno 2] No such file or directory avec un chemin très long, activez le support des chemins longs Windows en exécutant ceci dans un PowerShell Administrateur :

Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1

Puis redémarrez votre terminal et relancez l'installation.

Notes par Version de Python

Version Python Notes
3.8 Toutes les bibliothèques fonctionnent. Utiliser scikit-learn<1.3 si problème.
3.9 Entièrement supporté. Aucun problème connu.
3.10 Recommandé. Meilleure compatibilité.
3.11 Supporté. Utiliser numpy>=1.24 en cas d'erreur de compilation.
3.12 Supporté. Toutes les bibliothèques ont des wheels (paquets pré-compilés) disponibles.
3.13 Testé et fonctionnel. Utiliser python -m pip pour les mises à jour.

Différences GPU / CPU

Ce projet utilise uniquement des bibliothèques CPU (processeur central). Aucun GPU (carte graphique) n'est requis. Tous les modèles scikit-learn s'exécutent sur CPU.

Problèmes de Kernel (Noyau) des Notebooks

Si les notebooks ne trouvent pas le bon kernel Python :

python -m ipykernel install --user --name students_ai --display-name "Python (students_ai)"

Puis sélectionnez "Python (students_ai)" comme kernel dans VS Code ou Jupyter.


Description du Jeu de Données

Colonne Type Description
age int (entier) Âge de l'étudiant (14–19)
education_level str (texte) Niveau d'éducation : "school" (lycée) ou "college" (université)
study_hours_per_day float (décimal) Heures d'étude par jour (1.0–5.0)
uses_ai str (texte) Utilise l'IA : "Yes" (oui) ou "No" (non)
ai_tools_used str (texte) Outil IA utilisé : "ChatGPT", "Copilot", "Gemini" ou "None" (aucun)
purpose_of_ai str (texte) But de l'utilisation : "Research" (recherche), "Homework" (devoirs), "Coding" (programmation) ou "None" (aucun)
grades_before_ai int (entier) Note avant l'utilisation de l'IA (55–75)
grades_after_ai int (entier) Note après l'utilisation de l'IA (55–89)
daily_screen_time_hours int (entier) Temps d'écran quotidien en heures (2–7)

Variables Créées (Feature Engineering)

Variable Description
grade_change Changement de note : grades_after_ai - grades_before_ai
grade_change_pct Changement en pourcentage (%)
performance_category Catégorie : Low (Faible, ≤65) / Medium (Moyen, ≤78) / High (Élevé, >78)
ai_usage_binary 1 si l'étudiant utilise l'IA, 0 sinon
study_intensity Intensité d'étude : study_hours_per_day / daily_screen_time_hours

Modèles

Régression (cible : grades_after_ai)

La régression prédit une valeur numérique continue (la note exacte).

Modèle Description
Régression Linéaire (Linear Regression) Modèle linéaire de base — trace une droite à travers les données
Forêt Aléatoire (Random Forest Regressor) Ensemble de 100 arbres de décision qui votent ensemble
Gradient Boosting Regressor 100 arbres construits séquentiellement, chacun corrigeant les erreurs du précédent

Classification (cible : performance_category)

La classification prédit une catégorie (Faible, Moyen ou Élevé).

Modèle Description
Régression Logistique (Logistic Regression) Modèle linéaire adapté pour la classification multi-classes
Forêt Aléatoire (Random Forest Classifier) Ensemble de 100 arbres de décision qui votent pour une catégorie
Gradient Boosting Classifier 100 arbres séquentiels, chacun corrigeant les erreurs du précédent

Métriques d'Évaluation

Métrique Type Signification
MAE (Mean Absolute Error) Régression Erreur absolue moyenne — écart moyen entre prédiction et réalité
MSE (Mean Squared Error) Régression Erreur quadratique moyenne — pénalise davantage les grosses erreurs
RMSE (Root MSE) Régression Racine carrée de MSE — même unité que la variable cible
(R-squared) Régression Coefficient de détermination — 1.0 = parfait, 0.0 = aussi bon que la moyenne
Accuracy Classification Précision globale — pourcentage de prédictions correctes
F1 Score Classification Moyenne harmonique de la précision et du rappel — utile si les classes sont déséquilibrées

Licence

Licence MIT – voir LICENSE pour les détails.