[PYTHON] Equipement initial de Kaggle ~ Une cellule qui résume les codes fréquemment utilisés ~

introduction

Lorsque vous travaillez sur Kaggle [^ Kaggle], qui est une plateforme de compétition pour la science des données, Python [^ Python] écrit dans l'environnement d'exécution Notebook [^ Notebook](ou Jupyter Notebook [^ Jupyter Notebook] ou Google Colaboratory [^ Google Colaboratory]) ], Je pense qu'il existe un "code qui est fréquemment utilisé". Afin de le réutiliser, je vais l'introduire dans une cellule dans un format facile à copier et à coller de toute façon. Nous espérons qu'en réutilisant le contenu de cette cellule, nous pourrons améliorer l'efficacité de l'analyse des données dans Kaggle. (Ceci est "l'équipement initial de Kaggle"!)

Conclusion

Quel est l'équipement initial de Kaggle?

Cette cellule!

Equipement initial de Kaggle ~ Une cellule qui résume les codes fréquemment utilisés ~.py


#Afficher le bloc-notes
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

#Une chose pratique
import tqdm
import warnings
warnings.simplefilter('ignore')

#Manipulation de données
import numpy as np
import pandas as pd
pd.set_option('display.max_columns', None)

#Visualisation de données
import pandas_profiling as pdp
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
sns.set()

#Prétraitement
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import OneHotEncoder

#Vérification croisée
from sklearn.model_selection import StratifiedKFold

#Définition de constante
SEED = 2019
N_FOLDS = 10

#Sortie d'une liste de noms de fichiers donnés en entrée
import os
for dirname, _, filenames in os.walk('/kaggle/input'):
    for filename in filenames:
        print(os.path.join(dirname, filename))

Commentaire

Je vais expliquer chaque point sur les cellules ci-dessus.

Afficher le bloc-notes

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

Notebook ne produit pas les graphiques que vous essayez de générer au milieu d'une cellule (par exemple, pandas DataFrame). En utilisant ʻInteractiveShell` [^ InteractiveShell], tous les graphiques que vous avez essayé de générer au milieu de la cellule seront générés par la description ci-dessus. Cependant, il doit être exécuté à l'avance dans une cellule différente de la cellule dans laquelle la sortie est tentée. En d'autres termes, si vous exécutez cette cellule, elle sera appliquée dans d'autres cellules.

Une chose pratique

import tqdm
import warnings
warnings.simplefilter('ignore')

Dans l'analyse des données, certains processus nécessitent beaucoup de temps. En utilisant tqdm [^ tqdm], vous pouvez vérifier la progression du traitement sur la barre de progression. Vous pouvez également voir des avertissements qui n'affectent pas l'exécution. Pour ignorer cela, utilisez le module warnings [^ warnings] qui gère l'affichage des avertissements. N'affichez pas l'avertissement en écrivant warnings.simplefilter ('ignore').

Manipulation de données

import numpy as np
import pandas as pd
pd.set_option('display.max_columns', None)

Il s'agit du code écrit par défaut dans Kaggle's Notebook. Nous utiliserons deux modules essentiels pour l'analyse des données, numpy [^ numpy] pour le calcul numérique et pandas [^ pandas] pour gérer les matrices. De plus, la description set_option ('display.max_columns', None) définit toutes les colonnes à afficher à tout moment.

Visualisation de données

import pandas_profiling as pdp
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
sns.set()

En manipulant pandas_profiling [^ pandas_profiling], le type de données et la distribution de chaque caractéristique, les valeurs manquantes, le coefficient de corrélation, etc. peuvent être générés ensemble. Utile pour l'analyse exploratoire des données (EDA). matplotlib [^ matplotlib] est une bibliothèque utilisée pour dessiner des graphiques, et vous pouvez dessiner de beaux graphiques en l'utilisant en combinaison avec seaborn [^ seaborn] qui fonctionne comme son enveloppe. La visualisation des données ci-dessus est importante pour comprendre l'image globale des données.

Prétraitement

from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import OneHotEncoder

Même dans le prétraitement, en utilisant SimpleImputer [^ SimpleImputer], la valeur manquante peut être remplie avec l'une des valeurs moyennes (moyenne), médiane (médiane) et la valeur la plus fréquente (mode).

En outre, il existe sklearn.preprocessing [^ sklearn.preprocessing] comme module implémenté pour le prétraitement. Les méthodes qui leur appartiennent peuvent standardiser l'échelle des caractéristiques en utilisant StandardScaler [^ StandardScaler] comme prétraitement des valeurs numériques. Normaliser l'échelle des fonctionnalités en utilisant MinMaxScaler [^ MinMaxScaler]. En utilisant LabelEncoder [^ LabelEncoder] comme prétraitement des variables catégorielles, vous pouvez convertir une chaîne de caractères en un ID exprimé numériquement. ʻOneHotEncoder` [^ OneHotEncoder] peut être utilisé pour convertir en vecteur.

Vérification croisée

from sklearn.model_selection import StratifiedKFold 

La validation croisée est effectuée pour éviter le surentraînement du modèle (améliorer les performances de généralisation). En utilisant KFold stratifié [^ KFold stratifié], qui implémente la vérification d'intersection fractionnée K stratifiée, vous pouvez diviser les données pour l'apprentissage et le test et vérifier l'exactitude du modèle tout en conservant le rapport de distribution. ..

Définition de constante

SEED = 2019
N_FOLDS = 10

À l'avance, fixez la graine du nombre pseudo aléatoire (SEED) et définissez le nombre de divisions pour la vérification des intersections ( N_FOLDS). En les attribuant à StratifiedKFold, qui est une fonction qui implémente la validation croisée, la reproductibilité de la validation est maintenue. Un exemple est présenté ci-dessous.

skf = StratifiedKFold(n_splits=N_FOLDS, random_state=SEED)

Sortie d'une liste de noms de fichiers donnés en entrée

import os
for dirname, _, filenames in os.walk('/kaggle/input'):
    for filename in filenames:
        print(os.path.join(dirname, filename))

C'est le code écrit par défaut dans Kaggle's Notebook. Cela vérifiera d'abord le nom de fichier donné.

en conclusion

Dans cet article, en tant que "Équipement initial de Kaggle", le "Code utilisé fréquemment" dans Notebook est résumé et présenté comme une seule cellule. Et j'ai expliqué les points. Si vous avez des suggestions ou des conseils, n'hésitez pas à nous contacter.

(Ajouté le 03 décembre 2019) Il a été publié dans l'article suivant! Je vous remercie!

Recommended Posts

Equipement initial de Kaggle ~ Une cellule qui résume les codes fréquemment utilisés ~
Une classe qui résume les méthodes fréquemment utilisées dans l'api twitter (python)