Bonjour, c'est Motty. Depuis que j'ai commencé kaggle récemment, je voudrais résumer le fonctionnement simple du traitement des données à l'aide de Pandas, ce qui est essentiel (''). ・ Site officiel de Kaggle https://www.kaggle.com/ ・ Guide de l'utilisateur Pandas https://pandas.pydata.org/docs/user_guide/index.html
Pandas est une bibliothèque de traitement de données Python. Vous pouvez facilement utiliser les tables, agréger et compléter les valeurs manquantes. Il y a beaucoup d'autres choses, telles que la jonction de colonnes, l'affichage d'une matrice de corrélation et la tabulation croisée.
kaggle Classic, mais utilise des données sur la survie du Titanic.
import numpy as np
import matplotlib.pyplot as plt
%matplotlib.inline
import pandas as pd
df_train = pd.read_csv("train.csv")
df_train.columns #Liste des articles
Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'], dtype='object')<Figure size 1080x1080 with 0 Axes>
df_train.shape #Taille
(891,12) C'est la taille de la file d'attente. Jetons un coup d'œil aux 5 premières lignes seulement.
df_train.head()
Les données quantitatives et les données qualitatives sont mitigées. (PClass n'est pas lié quantitativement les uns aux autres, il peut donc être considéré comme des données qualitatives!)
df_train["Name"] #1 extraction de colonne
df_train.loc[:,["Name","Sex"]] #Extraction multi-colonnes
df_train[10:15] #Extraction de lignes
df_train[10:20:2] #Passer une ligne
df_train[df_train["Age"] < 20] #Spécification de la valeur
df_train[1:300].query('Age < 20 and Sex == "male"') #Spécifiez plusieurs conditions avec une requête
df_train["Pclass"].value_counts()
3 491 1 216 2 184 Name: Pclass, dtype: int64 Il renvoie le résultat agrégé pour chaque élément.
df_train.isnull() #Vrai → Valeur manquante
df_train.isnull().sum()
PassengerId 0 Survived 0 Pclass 0 Name 0 Sex 0 Age 177 SibSp 0 Parch 0 Ticket 0 Fare 0 Cabin 687 Embarked 2 dtype: int64
Vous pouvez obtenir le nombre total de NaN pour chaque élément de colonne de la liste. Sur cette base, nous établirons une politique pour compléter les valeurs manquantes.
La matrice de corrélation est le coefficient de corrélation entre chaque variable.
df_train.corr() #Affichage du coefficient de corrélation
PassengerId Survived Pclass Age SibSp Parch Fare PassengerId 1.000000 -0.005007 -0.035144 0.036847 -0.057527 -0.001652 0.012658 Survived -0.005007 1.000000 -0.338481 -0.077221 -0.035322 0.081629 0.257307 Pclass -0.035144 -0.338481 1.000000 -0.369226 0.083081 0.018443 -0.549500 Age 0.036847 -0.077221 -0.369226 1.000000 -0.308247 -0.189119 0.096067 SibSp -0.057527 -0.035322 0.083081 -0.308247 1.000000 0.414838 0.159651 Parch -0.001652 0.081629 0.018443 -0.189119 0.414838 1.000000 0.216225 Fare 0.012658 0.257307 -0.549500 0.096067 0.159651 0.216225 1.000000
La composante diagonale est toujours 1 car elle est en corrélation avec elle-même. Cependant, il existe non seulement des données quantitatives, mais aussi des chaînes de caractères (Sex, Embark) et des données qualitatives utilisant des nombres (Pclass), qui doivent être converties en représentations one-hot.
dummy_df = pd.get_dummies(df_train, columns = ["Sex","Embarked","Pclass"]) #Obtenir des variables factices
dummy_df.columns
Index(['PassengerId', 'Survived', 'Name', 'Age', 'SibSp', 'Parch', 'Ticket', 'Fare', 'Cabin', 'Sex_female', 'Sex_male', 'Embarked_C', 'Embarked_Q', 'Embarked_S', 'Pclass_1', 'Pclass_2', 'Pclass_3'], dtype='object')
dummy_df.corr()
Je ne l'écrirai pas car c'est énorme, mais la matrice de corrélation que j'ai mentionnée plus tôt a été omise pour les données de chaîne. Cette fois, une matrice de corrélation avec la variable qualitative remplacée par un mannequin (0,1) est renvoyée.
Regardons la matrice de corrélation en utilisant HeatMap de Seaborn. Pour la palette de couleurs, j'ai choisi une palette de couleurs avec une profondeur de couleur contrastante centrée sur 0.
import seaborn as sns
plt.figure(figsize = (12,10))
sns.heatmap(dummy_df.corr(), cmap = "seismic",vmin = -1 ,vmax = 1, annot = True)
Ceux qui sont fortement corrélés avec Servived peuvent être considérés comme affectant Servived. La corrélation entre Sex_female et Pclass_1 est élevée. Cela signifie que les personnes qui sont des femmes ou qui ont une classe de chambre de 1 ont un taux de survie élevé. Si vous l'utilisez correctement, vous pouvez définir une star de la politique dans la phase de pré-apprentissage automatique!
J'ai fait référence à l'article suivant. URL de référence ・ Opération de base Pandas qui apparaît fréquemment dans l'analyse des données https://qiita.com/ysdyt/items/9ccca82fc5b504e7913a · Information additionnelle. Il est temps pour vous d'utiliser la carte thermique Seaborn. de maman https://qiita.com/hiroyuki_kageyama/items/00d0f52724f16ad7cf77 Livre de référence <a target = "_ blank" href = "https://www.amazon.co.jp/gp/product/B07C3JFK3V/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B07C3JFKorgan777V&linkCode=as2cdtag=2c2&tag777&linkCode=as2cry2&tag773V&linkCode=as2cdtag > Prétraitement complet [techniques pratiques SQL / R / Python pour l'analyse des données] <img src = "// ir-jp.amazon-adsystem.com/e/ir?t=organiccrypt-22&l=am2&o" = 9 & a = B07C3JFK3V "width =" 1 "height =" 1 "border =" 0 "alt =" "style =" border: none! Important; margin: 0px! Important; "/> <a target = "_ blank" href = "https://www.amazon.co.jp/gp/product/B084MD5DGG/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B084MD5DGG&linkCode=as2&tag01-2903&tag2clink2 > Peut être utilisé sur le terrain! pandas Introduction au prétraitement des données Méthodes de prétraitement utiles pour l'apprentissage automatique et la science des données <img src = "// ir-jp.amazon-adsystem.com/e/ir?t=organiccrypt-22&l=am2&o=9&a=" B084MD5DGG "width =" 1 "height =" 1 "border =" 0 "alt =" "style =" border: none! Important; margin: 0px! Important; "/>
N'est-il pas possible de simplement le mettre dans un tableau Numpy pour le traitement des données? J'ai pensé, mais il est intéressant que le traitement des données puisse être effectué facilement. Au contraire, si vous souhaitez effectuer des calculs avancés pour DataFrame, il peut être préférable de le déplacer une fois dans un tableau ...?
Recommended Posts