Vous êtes-vous déjà demandé s'il était possible de prédire si un pokémon était légendaire grâce à la Data Science ? Margaux, élève de la formation Data Essentials et grande fan de pokémon, a décidé de faire son projet final sur la prédiction des pokémon légendaires, on vous explique !
Introduction
Tous nos élèves de chaque formation ont des projets à réaliser ! Margaux a suivi la formation Data Fullstack et a choisi de lier sa passion à la Data Science ! Qu'est ce que mon modèle prédit ? Pour vous mettre dans le contexte, un Pokémon légendaire, c'est un Pokémon qui est unique au monde, qui est extrêmement rare. Si vous en croisez un dans votre vie, c'est super, vous êtes bénis, vous pourrez mourir en paix, ils sont uniques et puissants. Les pokémon Légendaires se caractérisent principalement par leur rareté.
La base de données
Pour faire fonctionner le modèle, nous allons étudier les sept premières générations, qui réunissent 801 Pokémon au total, je vais vous montrer les 18 types, c'est à dire qu'un Pokémon peut être de différentes catégories : eau, feu, etc. J'ai choisi de travailler sur les pokémon de type 1, parce que les pokémon peuvent cumuler un deuxième type, mais le Data Set aurait été trop grand et compliqué à analyser.
Dans la base de données, nous avons 70 Pokémon légendaires. J'ai fait un petit graphique pour vous illustrer les différents types de Pokémon, donc en majorité, les Pokémon sont de type eau, normal et plante. Et sur la partie legendary, c'est intéressant puisque ce n'est pas du tout le même résultat. Ils sont plutôt de type psy, dragon et ex aequo il y a les pokémon acier et eau. Ce n'est pas parce qu'un type rassemble le plus de Pokémon qu'il y aura forcément un pokémon légendaire au sein de ce type. Ce sont deux choses distinctes.

La collecte de données
En premier lieu, je suis allée sur le site Kaggle, où j'ai récupéré ma base de données. Dans cette base, il y a les 801 Pokémon des sept premières générations. Ces sept générations rassemblent 41 variables dont le nom, le type 1, type 2, les habilités du pokémon, les attaques et la colonne is_Legendary. Et dans la partie prepocessing, pour ma part, au niveau de mes données, je n'ai pas de eu valeurs manquantes, sauf sur le type 2, parce que, comme expliqué auparavant, il y a des pokémon qui n'ont qu'un seul type et que si on rajoute des données du type 2, ça fausse complètement l'identité de mon Pokémon.
Les seules valeurs manquantes qui pourraient nous intéresser sont les données numériques. Mais ça tombe bien, je n'en ai pas dans la base.
Le modèle
J'ai divisé ma base en deux : ma train set qui sera à 80% et ma partie test set sera à 20%. J'ai standardisé uniquement mes colonnes où mes données sont numériques.
Ensuite, pour le modèle, j'ai choisi le modèle de régression logistique :
- car on a besoin de prédire une catégorie : la catégorie Légendaire, qui sera la colonne Is_Legendary qui correspond à Y.
Si Y = 1, le pokémon est légendaire. Si Y = 0 le pokémon n'est pas légendaire.
- pour le X, je me suis basée sur les 37 variables indépendantes aux données numériques.
Et l'objectif, c'est qu'on mette toutes les données sous le même format pour qu'ensuite, dans Y on ait soit 1 qui correspond à Pokémon légendaire soit zéro pour le Pokémon non légendaire.

Conclusion
Pour conclure : au niveau mon score sur la partie train set, je suis à 0,99. Sur la partie test, je suis à 0,98. Donc l'objectif, c'est d'être proche du 1, ce n'est pas parfait, mais on est quand même très proche. En termes de confusion, j'ai très peu de confusion. En fait, j'ai un très beau score du coup, je me suis contenté que de ce modèle là, parce que j'ai eu la confirmation que mes 70 Pokémon légendaires dont je vous ai parlé avant le sont bien qu'il n'y a pas d'erreur et que mon modèle est bien conforme avec ma réalité !
Maintenant, "Attrapez les tous" !