[PYTHON] Expérience d'apprentissage automatique (première partie) en quelques lignes. Expliquez PyCaret en détail. De la préparation des ensembles de données à la comparaison de précision de plusieurs modèles.

Concernant les données invisibles

Lors de l'étude de PyCaret, il semble que les données invisibles soient confondues avec les données de test, mais les données invisibles sont des données de test, mais si vous expliquez en détail,

Créer un modèle prédictif avec des données d'entraînement Créer un modèle de prédiction final en combinant des données d'entraînement avec des données de test Enfin, entrez des données invisibles dans le modèle pour vérifier l'exactitude du modèle

Ce sera le flux.

introduction

La bibliothèque open source d'apprentissage automatique Python "PyCaret 1.0.0" a été publiée le 16 avril 2020, donc installons-la avec pip.

PyCaret complète automatiquement les valeurs manquantes et ajuste les hyper paramètres. Par conséquent, la particularité est que l'étape d'apprentissage automatique est réalisée en quelques lignes. Même si vous ne connaissez pas le contenu du machine learning, vous pouvez facilement créer et comparer des modèles.

Tutoriel de classification binaire (CLF101) - Niveau débutant Pour référence, je vais essayer de l'implémenter en utilisant Google Colab.

Installez PyCaret

Pour Google Colab ou Azure Notebooks, installez avec le code suivant.

La version au moment de la rédaction est 1.0.0. Il semble que la version 1.0.1 retournera des modèles entraînés avec compare_models.

Return models from compare_models. Currently compare_models() donot return any trained model object.

code.py


! pip install pycaret

Lorsque vous utilisez Google Colab, vous pouvez l'afficher de manière interactive en exécutant le code suivant.

code.py


from pycaret.utils import enable_colab
enable_colab()

Préparation du jeu de données

Pycaret fournit plusieurs ensembles de données que vous pouvez utiliser avec get_data () (doit être connecté à Internet).

Les ensembles de données utilisables sont stockés dans pycaret / datasets /, et la classification multi-classes est la qualité du vin, l'iris et la classification binaire. Et le cancer et les maladies cardiaques.

Le didacticiel utilise un ensemble de données sur les informations de paiement par carte de crédit d'avril à septembre 2005 à Taïwan, y compris le sexe, l'éducation finale, l'état matrimonial, l'état des paiements antérieurs, l'historique des paiements passés et les détails de facturation. C'est inclus.

La colonne cible est un paiement par défaut (1 = oui, 0 = non), il s'agit donc d'une classification binaire. La classification binaire est une classification à deux valeurs de réussite ou d'échec, positive ou négative.

code.py


from pycaret.datasets import get_data
dataset = get_data('credit')

image.png

Vérifions le nombre d'ensembles de données.

code.py


#check the shape of data
dataset.shape

résultat

(24000, 24)

Ensuite, définissez 5% sur Données non visibles. Les données 1200 ne sont pas utilisées pour créer le modèle prédictif dans cet ensemble de données. En regardant le didacticiel, il est dit que le train / le test se divise et qu'il n'y a pas de monde. (Les données d'entraînement et les données de test sont séparées par la fonction de configuration ().)

This should not be confused with a train/test split as this particular split is performed to simulate a real life scenario.

code.py


data = dataset.sample(frac=0.95, random_state=786)
data_unseen = dataset.drop(data.index).reset_index(drop=True)
data.reset_index(drop=True, inplace=True)

print('Data for Modeling: ' + str(data.shape))
print('Unseen Data For Predictions: ' + str(data_unseen.shape))

résultat

Data for Modeling: (22800, 24) Unseen Data For Predictions: (1200, 24)

Paramètres d'environnement PyCaret

Initialisez l'environnement PyCaret avec setup (). Dans setup (), il y a deux paramètres obligatoires, la trame de données pandas et les paramètres de nom de colonne cible. D'autres paramètres sont facultatifs. Cette fois, session_id est spécifié. Ceci est utilisé pour la reproductibilité. S'il n'est pas spécifié, un nombre pseudo aléatoire sera émis.

Après avoir exécuté setup (), le type de données est automatiquement déduit. Puisqu'il n'est pas toujours correctement déduit, la quantité de caractéristiques et le type de données estimé seront affichés après l'exécution de setup (). Une fois que vous avez vérifié que tous les types de données ont été correctement identifiés, appuyez sur Entrée pour continuer ou tapez quit pour quitter.

code.py


from pycaret.classification import *
exp_clf101 = setup(data = data, target = 'default', session_id=123)

Si les données d'origine ont des valeurs manquantes, elles seront affichées comme True. Dans cette expérience, il n'y avait aucune valeur manquante dans l'ensemble de données.

image.png

Sampled Data (22800, 24) Transformed Train Set (15959, 90)

Je ferai attention à. On peut voir que les fonctionnalités de l'ensemble de données d'entraînement sont augmentées par rapport aux fonctionnalités de l'ensemble de données d'origine. C'est parce qu'il a été automatiquement transformé en une variable catégorielle.

Categorical Features 9

Et ces 9 fonctionnalités ont été converties en variables catégorielles. C'est vraiment incroyable qu'il le fasse automatiquement.

Puisque les données d'entraînement sont de 70% et les données de test de 30%

Sampled Data (22800, 24) Transformed Train Set (15959, 90) Transformed Test Set (6841, 90)

Il sera divisé comme ça.

Comparaison de modèles

Vous pouvez vous entraîner sur tous les modèles de la bibliothèque et utiliser la validation croisée par 10 pour calculer et comparer la précision, la reproductibilité et les scores F1. Par exemple, si vous accordez de l'importance au score F1, vous aurez envie d'utiliser LightGBM.

code.py


compare_models()

Par défaut, il est trié par précision.

image.png

Par exemple, si vous souhaitez ajouter une option qui souhaite trier par rappel ou effectuer une validation d'intersection 5 fois, exécutez le code suivant.

code.py


compare_models(sort = 'Recall', fold = 5)

image.png

Résumé

Dans cet article, nous avons même comparé les modèles. Ensuite, j'aimerais créer un modèle et l'évaluer.

Recommended Posts

Expérience d'apprentissage automatique (première partie) en quelques lignes. Expliquez PyCaret en détail. De la préparation des ensembles de données à la comparaison de précision de plusieurs modèles.
Expérience d'apprentissage automatique en quelques lignes (deuxième partie). Expliquez PyCaret en détail. Construction de modèles et analyse d'évaluation.
Comment créer un ensemble de données d'image de visage utilisé dans l'apprentissage automatique (3: Génération d'images de visage à partir d'images candidates, partie 1)
Version gratuite de DataRobot! ?? Introduction à «PyCaret», une bibliothèque qui automatise l'apprentissage automatique
La première étape pour ceux qui sont amateurs de statistiques mais qui souhaitent implémenter des modèles d'apprentissage automatique en Python