Un projet de prédiction de résultats de matchs de football pour la Ligue 1 française, saison 2023/2024, utilisant l'apprentissage automatique.
Ce projet vise à prédire les résultats des matchs de football (victoire à domicile, match nul, ou victoire à l'extérieur) en utilisant des données historiques et des statistiques de matchs. Le modèle est entraîné sur les données de la Ligue 1 pour la saison 2023/2024 et utilise un algorithme de Random Forest.
sport_result_prediction/
├── app/ # Application Streamlit
│ ├── streamlit_app.py # Interface principale
│ └── streamlit_app_test.py
├── data/ # Données du projet
│ ├── raw/ # Données brutes
│ │ └── ligue1_2023_2024.csv
│ ├── processed/ # Données nettoyées
│ │ └── cleaned_data.csv
│ └── model.pkl # Modèle entraîné
├── notebooks/ # Notebooks Jupyter pour l'exploration
│ └── 01_exploration.ipynb
├── src/ # Code source Python
│ ├── data_preparation.py # Préparation des données
│ ├── train_model.py # Entraînement du modèle
│ └── predict.py # Prédictions
├── requirements.txt # Dépendances Python
└── README.md # Ce fichier
- Python 3.8 ou supérieur
- pip (gestionnaire de paquets Python)
-
Cloner le dépôt (ou télécharger le projet)
git clone <url-du-depot> cd sport_result_prediction
-
Créer un environnement virtuel (recommandé)
python -m venv venv
-
Activer l'environnement virtuel
- Sur Windows:
venv\Scripts\activate
- Sur macOS/Linux:
source venv/bin/activate
- Sur Windows:
-
Installer les dépendances
pip install -r requirements.txt
Nettoyez et préparez les données à partir du fichier brut:
python src/data_preparation.pyCette commande va:
- Charger les données brutes depuis
data/raw/ligue1_2023_2024.csv - Nettoyer les données (suppression des colonnes inutiles, gestion des valeurs manquantes)
- Encoder les résultats (H=1, D=0, A=-1)
- Sauvegarder les données nettoyées dans
data/processed/cleaned_data.csv
Entraînez le modèle de Random Forest:
python src/train_model.pyCette commande va:
- Charger les données nettoyées
- Séparer les données en ensembles d'entraînement et de test (80/20)
- Entraîner un modèle Random Forest avec 100 estimateurs
- Évaluer la précision du modèle
- Sauvegarder le modèle dans
data/model.pkl
Faire des prédictions sur de nouveaux matchs:
python src/predict.pyLancer l'application web interactive:
streamlit run app/streamlit_app.pyL'interface permet de:
- Sélectionner un match par son index
- Visualiser la prédiction (victoire domicile, nul, ou victoire extérieur)
- Python - Langage de programmation principal
- Pandas - Manipulation et analyse de données
- Scikit-learn - Machine Learning (Random Forest)
- Joblib - Sauvegarde et chargement de modèles
- Streamlit - Interface web interactive
Les dépendances du projet sont listées dans requirements.txt:
- pandas
- scikit-learn
- joblib
- streamlit
- ✅ Prédiction de résultats de matchs (victoire domicile, nul, victoire extérieur)
- ✅ Interface web interactive avec Streamlit
- ✅ Modèle de Random Forest entraîné sur les données de la Ligue 1
- ✅ Pipeline de préparation des données
- ✅ Évaluation de la performance du modèle
- Le modèle est entraîné sur les données de la saison 2023/2024 de la Ligue 1
- Les données sont encodées numériquement pour l'entraînement
- Le modèle utilise un Random Forest avec 100 estimateurs
Les chemins des fichiers de données et du modèle sont configurables dans les scripts Python. Les chemins actuels pointent vers:
- Données brutes:
data/raw/ligue1_2023_2024.csv - Données nettoyées:
data/processed/cleaned_data.csv - Modèle:
data/model.pkl
Projet développé dans le cadre de l'apprentissage du Machine Learning appliqué au sport.
Ce projet est fourni à des fins éducatives et d'apprentissage.