[PYTHON] Commençons l'analyse multivariée et l'analyse des composants principaux avec Pokemon! Coopération entre R et Tableau

Pokemon Go a été annoncé à l'automne 2015 et est devenu un phénomène social dans le monde entier, mais il est toujours extrêmement populaire auprès des enfants et des adultes.

Je pense que la raison de sa popularité est que les personnages de Pokemon sont uniques et riches en variété.

 

J'étais aussi un débutant complet dans Pokemon, mais je me demande si je peux faire une analyse intéressante à partir des données Pokemon.

 

Site du concours mondial de science des données: Il semble y avoir pas mal de données sur Pokemon dans l'ensemble de données publié sur Kaggle. Pokemon semble être un sujet de recherche intéressant pour les scientifiques des données!

 

Donc, cette fois, je vais essayer de comprendre les données d'attribut de Pokemon à partir de l'ensemble de données Kaggle en utilisant l'analyse des composants principaux.

 

En premier lieu, Pokemon semble avoir divers attributs tels que CP (Combat Point: puissance de combat), HP (Hit Point: force physique), poids, taille, etc.

 

référence:

[Pokemon GO] Qu'est-ce que le CP? Explique comment augmenter la limite supérieure et la valeur initiale / CP au moment de l'évolution

https://pokemongo.gamewith.jp/article/show/23752

 

Si vous dessinez un diagramme de dispersion de ces attributs, vous pouvez voir la corrélation de chaque attribut (par exemple, si le corps est gros, le HP est aussi gros ...) Cependant, si le nombre de variables augmente, ce n'est pas clair au premier coup d'œil. droite.

 

N'est-il pas possible de représenter plus efficacement les attributs de Pokémon sur une carte bidimensionnelle et de trouver des types similaires de Pokémon?

 

Donc, cette fois, j'aimerais penser à une méthode de visualisation qui vous permet de voir la distribution des attributs de Pokemon en un coup d'œil à l'aide de l'analyse des composants principaux (PCA).

 

Qu'est-ce que l'analyse en composants principaux? , "En utilisant la corrélation de données multivariées, la perte d'informations est minimisée. Tout en supprimant à, réduisez à une petite quantité de variables synthétiques, réduisez les dimensions et analysez ... "

 

Bref, HP, CP, puissance offensive, puissance défensive, force physique, hauteur, etc ... Il est difficile pour les humains de comprendre s'il y a beaucoup d'attributs, donc des attributs similaires sont réunis et le composant principal se sent bien. Je comprends qu'il s'agit d'extraire ce qui doit être et de penser simplement. (Je suis désolé pour la compréhension approximative.)

 

Je vais vous présenter à partir du résultat! !!

Les résultats de l'analyse des composants principaux de 151 Pokémon de première génération et de l'analyse des composants principaux avec Tableau sont les suivants.

En regardant en haut à droite de l'écran, la taille (hauteur_m) et le poids (poids_kg) ont des composants similaires, et plus l'individu est grand, plus il est lourd, ce qui est naturel. Ce sont des ingrédients similaires, car ils ont également une meilleure défense.

Snorax, Gyarados et Onix sont des groupes similaires aux Pokémon grands et défensifs.

En regardant en bas à droite de l'écran, on peut dire que la vitesse et sp_attack sont des composants similaires. Le Pokémon tracé en bas à droite de l'écran est petit mais rapide et semble être un Pokémon avec une forte attaque spéciale. Gengar et Alakazam ont de telles caractéristiques.

Et il y a Mewtwo comme valeur de saut en bas à droite de l'écran, mais ce n'est pas grand, mais cela semble être extrêmement fort de toute façon.

En regardant dans l'ensemble, l'axe Y est grand en haut et la défense est haute, le bas est petit et génial

On peut dire que l'axe X est globalement plus fort lorsqu'il va vers la droite, et plus faible globalement (MagiCarp Koiking, Caterpie Caterpie, Weedle Beadle) à gauche.

De cette façon, en analysant les principaux composants, je pense qu'il sera plus facile de comprendre Pokémon à vol d'oiseau en trouvant des Pokémon avec des caractéristiques similaires et des Pokémon avec des caractéristiques exceptionnelles.

Ensuite, je voudrais vous présenter les étapes de l'analyse.

 

Apportons les données et préparons-nous.

Cette fois, nous utiliserons l'ensemble de données suivant à partir des données publiées sur Kaggle.

① Pokemon Go: 151 Pokemon and battle stats

Il existe des informations sur 151 types de Pokemon MAX CP et MAX HP de première génération.

https://www.kaggle.com/abcsds/pokemongo

 

② The Complete Pokemon Dataset

En plus des 802 attributs Pokemon, il existe une multitude de données telles que le poids, la taille et le taux de capture. https://www.kaggle.com/rounakbanik/pokemon

Continuons l'analyse en utilisant ces données.

 

Cette fois, nous préparerons les données à l'aide de Tableau Prep, qui est un outil de préparation de données.

Procédez comme suit:

+ Supprimer les champs inutiles (seuls les champs nécessaires seront utilisés)

+ Combinez deux ensembles de données avec Pokemon ID (les informations d'identification uniques à Pokemon sont attribuées)

+ Supprimez les données avec des valeurs manquantes (poids manquant) (S'il y a des valeurs manquantes, l'analyse du composant principal ne peut pas être effectuée, c'est donc un gaspillage, mais je vais la jeter ici.)

Comme vous pouvez voir la distribution des données dans Tableau Prep, vous pouvez voir que l'attaque et la défense semblent être normalement distribuées.

(Remarque: l'écran est une capture d'écran du projet Maestro.)

Maintenant, effectuons une analyse des composants principaux avec R en utilisant l'ensemble de données créé par Tableau Prep comme entrée.

Chargez les données dans R et utilisez prcomp pour calculer les composants principaux.

Cliquez ici pour savoir comment effectuer l'analyse des composants principaux à l'aide de R

http://lovedata.main.jp/2017/09/11/主成分分析(pca)をtableau-とr連携でやってみる/

Prière de se référer à.

> data <- as.data.frame(PRICOMPdata151) > row.names(data) <- data[,2] > data = data [,3:11] > result = prcomp(data,scale=TRUE) > biplot(result)

 

Tout d'abord, spécifiez le tracé de l'analyse en composantes principales avec R. Vous pourriez écrire l'intrigue ... D'une manière ou d'une autre, elle est bien distribuée. Mais avec cela, vous ne pouvez pas du tout voir les personnages qui se chevauchent et vous ne pouvez pas mettre en évidence le Pokémon que vous voulez voir. Utilisons un peu plus Tableau pour une visualisation amusante.

* Visualisation riche avec Tableau.

C'est exactement la même méthode que cet article présenté précédemment, mais il ajoute les données du composant principal à l'ensemble de données d'origine en tant que nouveau champ.

Ceci est craché au CSV et visualisé à partir de Tableau.

> x1 <- resultx[,1] > x2 <- resultx[,2] > data1 <- cbind(PRICOMPdata151,x1,x2) > data1

> write.csv(data1,"c:/tmp/Rstudy/Pokemon_pcomp.csv")

 

Il existe un site appelé Pokedex.org , et si vous transmettez PokeDex (numéro Pokemon) à ce site, l'explication de Pokemon sera affichée. .. C'est utile. Les informations Pokedex sont déjà dans l'ensemble de données, je vais donc les transmettre comme une action d'URL de tableau de bord.

Vous pouvez créer un tableau de bord comme celui-ci en ajoutant une action URL.

 

Voir ici pour savoir comment placer les icônes Pokemon sur un diagramme de dispersion en utilisant une forme personnalisée. Traitement de 718 formes Pokémon dans Tableau

Cela rend les attributs de Pokemon beaucoup plus faciles à comprendre. C'est facile à comprendre, même si vous ajoutez des surlignages et des filtres.

 

Tableau Public provient de ici .

 

Plus vous en savez sur Pokemon, plus il est profond, et il est également intéressant en tant que sujet de recherche pour l'analyse de données.

Si vous avez d'autres idées intéressantes sur Pokemon, j'aimerais essayer l'analyse.

 

Nous espérons que vous trouverez cela utile.

Recommended Posts

Commençons l'analyse multivariée et l'analyse des composants principaux avec Pokemon! Coopération entre R et Tableau
Compression dimensionnelle par auto-encodeur et analyse des composants principaux
Filtrage coordonné avec analyse des composants principaux et clustering K-means
Analyse des composants principaux avec le corpus d'actualités Livedoor - Pratique--
Analyse des composants principaux avec Livedoor News Corpus --Préparation--
J'ai essayé d'analyser les principaux composants avec les données du Titanic!
Ceci et cela de l'analyse en composantes principales
2. Analyse multivariée décrite dans Python 3-2. Analyse en composantes principales (algorithme)
Clustering et analyse en composantes principales par méthode K-means (débutant)
Défiez l'analyse des composants principaux des données textuelles avec Python
Analyse des composants principaux à l'aide de python de nim avec nimpy
Analyse en composants principaux (PCA) et analyse en composants indépendants (ICA) avec python
2. Analyse multivariée expliquée dans Python 3-1. Analyse en composantes principales (scikit-learn)
Analyse en composantes principales (Analyse en composantes principales: ACP)
Analyse pratique des composants principaux avec PyCaret [Normalisation + visualisation (tracé)] Mémo