Prédiction du foot

Autre projet

Image du projet

Description du Projet

Ce projet d'analyse de données explore un jeu de données détaillé sur les statistiques de matchs de la saison 2022-2023. L'objectif principal est d'étudier et de prédire le résultat d'un match en fonction des caractéristiques disponibles. Les étapes initiales consistent à nettoyer et pré-traiter les données, notamment en supprimant les colonnes inutiles et en traitant les valeurs manquantes. Une nouvelle colonne result est créée pour classer les résultats de chaque match en trois catégories : victoire à domicile (1), match nul (0), et défaite à domicile (-1). Une analyse exploratoire est effectuée pour visualiser les corrélations entre les différentes caractéristiques à l'aide de matrices de corrélation et de graphiques. Ensuite, les données sont normalisées pour être utilisées dans divers modèles de machine learning, tels que les forêts aléatoires, le SVM, et les réseaux neuronaux. La performance de chaque modèle est évaluée à l'aide de matrices de confusion, de rapports de classification, et de métriques comme l'exactitude. L'objectif final est de déterminer le modèle le plus efficace pour prédire l'issue des matchs, tout en identifiant les caractéristiques les plus influentes sur le résultat.

Code source

Détails du Projet

  • Python


Chargement et Prétraitement des Données : Lecture des données avec gestion du séparateur et de l'encodage. Suppression des colonnes inutiles et des lignes contenant des valeurs manquantes.
Création de la Variable Cible result :
Calcul et attribution de valeurs numériques (1, 0, -1) pour catégoriser les résultats des matchs.
Visualisation des Corrélations : Génération de matrices de corrélation pour identifier les relations entre les variables. Affichage de heatmaps pour une visualisation claire des corrélations.
Analyse des Distributions : Visualisation de la distribution des résultats des matchs sous forme de diagrammes à barres. Comparaison des caractéristiques des matchs en fonction du résultat (victoire, nul, défaite).
Normalisation des Données : Application de la méthode Min-Max Scaling pour normaliser les valeurs des caractéristiques.
Séparation des Données en Ensembles d'Apprentissage et de Test : Utilisation de train_test_split pour diviser les données avec ou sans stratification.
Modélisation avec Divers Algorithmes : Application d'algorithmes de machine learning, incluant Random Forest, SVM, Réseaux de Neurones, Naive Bayes, et Régression Logistique Multinomiale.
Évaluation des Modèles : Calcul des métriques de performance : exactitude, matrice de confusion, et rapport de classification. Affichage des matrices de confusion avec les étiquettes pour une interprétation plus aisée.
Affinement des Modèles : Ajustement des hyperparamètres des modèles pour améliorer leur performance. Comparaison des résultats de différents modèles pour déterminer le plus performant.
Visualisation des Résultats : Création de graphiques détaillés pour montrer la performance de chaque modèle et les erreurs de prédiction.