Transformez votre projet de science des données Découvrez les avantages de stocker les variables dans un fichier YAML

Transformez votre projet de science des données en stockant les variables dans un fichier YAML.

Cet article de blog discutera des avantages d’utiliser un fichier YAML comme référentiel central pour stocker des variables, des paramètres et des hyperparamètres dans un projet de science des données. Il expliquera comment cette méthode de stockage peut améliorer l’efficacité et l’organisation du projet en permettant un accès facile et une modification de ces valeurs. L’article fournira également des exemples et un guide étape par étape pour mettre en œuvre cette méthode dans un projet de science des données.

Photo de Fikri Rasyid sur Unsplash

Introduction

Les problèmes d’apprentissage automatique et d’apprentissage profond consistent tous à expérimenter avec différents paramètres. L’expérimentation devient assez difficile à mesure que le nombre de paramètres augmente. Cette difficulté est en partie due à l’effort manuel nécessaire pour modifier les valeurs des paramètres pour chaque itération d’expérimentation. Mais heureusement pour nous, il existe un moyen de faciliter cela. En utilisant la collaboration de fichiers YAML avec le code Python, nous pouvons effectuer différentes expériences assez facilement. Cet article démontrera comment utiliser le fichier YAML et le code Python pour différentes expérimentations.

Prérequis

  • Connaissance de base du langage de programmation Python
  • Connaissance de base du fonctionnement du cycle de vie de l’apprentissage automatique

Agenda

  • Qu’est-ce que YAML ?
  • Pourquoi ne pas utiliser la méthode conventionnelle de stockage des variables ?
  • Avantages de stocker les paramètres de manière centralisée dans le fichier YAML
  • Téléchargement de la bibliothèque Python PyYAML
  • Stockage des variables dans le fichier YAML
  • Stockage de listes et de dictionnaires dans le fichier YAML
  • Chargement des variables à partir du fichier YAML dans le fichier Python
  • Conclusion

Qu’est-ce que YAML ?

Avant d’entrer directement dans le sujet, apprenons quelques informations de base sur YAML.

YAML signifie “YAML Ain’t Markup Language”. YAML est un langage qui stocke des données dans un format très lisible par l’homme, contrairement aux fichiers XML ou JSON. Le fichier YAML ne stocke que des informations, il n’inclut donc aucun type d’actions. De plus, on peut facilement transférer les données à partir de fichiers YAML vers d’autres langages de programmation, tels que Python.

Pourquoi ne pas utiliser la méthode conventionnelle de stockage des variables ?

Pour expliquer ces concepts ici, je vais utiliser l’exemple d’un projet de science des données appelé “détection de fraude par carte de crédit”. Le but du projet est simple. Le projet se concentre sur la détection de la fraude lors d’une transaction effectuée. Cela se fait en utilisant certaines informations sur ladite transaction. Voici quelques exemples d’informations qui pourraient être utilisées :

  • La distance entre le lieu où la transaction est effectuée et l’adresse de domicile du propriétaire de la carte de crédit.
  • La distance par rapport au dernier lieu de transaction
  • Le ratio du prix moyen de la transaction par rapport au prix actuel de la transaction
  • L’adresse IP à partir de laquelle la transaction a été effectuée
  • Paiement en ligne ou hors ligne effectué

Cette détection est effectuée par le modèle d’apprentissage automatique entraîné sur l’historique des transactions par carte de crédit de l’utilisateur.

Le projet de science des données basé sur l’apprentissage automatique comporte de nombreuses étapes, telles que l’exploration des données, le nettoyage des données, la recherche du modèle d’apprentissage automatique adapté au problème, l’ajustement du modèle et la sauvegarde du modèle. Ce ne sont là que quelques-unes des nombreuses étapes présentes dans de tels projets. Chacune de ces étapes crée de nombreuses variables, notamment à l’étape où le modèle d’apprentissage automatique adapté doit être trouvé et à celle où l’ajustement du modèle d’apprentissage automatique adapté est effectué.

La méthode conventionnelle de stockage des variables pose des problèmes dans de tels cas. Comprendre cela en détail. Trouver le modèle d’apprentissage automatique adapté pour s’adapter aux données et obtenir le maximum de précision dépend largement de l’expérimentation avec les hyperparamètres de l’algorithme. En utilisant la méthode conventionnelle, nous devrons parcourir chaque fichier et changer manuellement ces paramètres pour effectuer chaque expérience. Cela devient très fastidieux et est sujet aux erreurs. Pour éviter ce travail inutile et les erreurs stupides, une nouvelle approche est utilisée. Nous comprendrons cette nouvelle approche plus tard dans cet article.

Avantages de stocker les paramètres de manière centralisée dans le fichier YAML

Contrairement à la méthode conventionnelle de stockage des paramètres dans leur fichier respectif, cette approche conseille de stocker tous les paramètres dans un seul fichier. On peut obtenir les paramètres chaque fois que nécessaire à partir de ce fichier en important le fichier. Cette approche est plus légère et moins sujette aux erreurs stupides. On peut même utiliser un fichier YAML pour stocker les chemins des fichiers également.

Une question peut se poser dans l’esprit : pourquoi utiliser uniquement le fichier YAML ? La réponse à cette question réside dans la syntaxe extrêmement simple des fichiers YAML. On peut utiliser d’autres types de fichiers également, mais pour simplifier une affaire simple, il est conseillé d’utiliser le fichier YAML.

Maintenant, voyons comment cela se fait en utilisant du code.

Téléchargement de la bibliothèque Python PyYAML

L’une des bibliothèques tierces populaires de Python est PyYAML. Cette bibliothèque est activement maintenue et elle est également mentionnée sur le site web officiel de YAML. Pour installer cette bibliothèque, utilisez la commande suivante dans le terminal.

python -m pip install pyyaml

Après l’installation de la bibliothèque, utilisez la commande suivante pour l’importer dans le fichier Python.

import yaml

Notez que même si PyYAML est le nom de la bibliothèque que vous avez installée, vous importerez le package en utilisant le nom ‘yaml’ dans le code Python.

Stockage des variables dans le fichier YAML

Le fichier YAML a une syntaxe quelque peu similaire à celle du langage Python. Dans le fichier YAML, les indentations sont utilisées comme en Python. Jetons un coup d’œil au fichier YAML pour comprendre cela.

SimpleImputer:  strategy: most_frequent  missing_values: nanOrdinalEncoder:  handle_unknown: use_encoded_value  unknown_value: 100

Ici, nous stockons des variables dans deux groupes appelés SimpleImputer et OrdinalEncoder. Ce sont les variables utilisées en tant que paramètres pour les transformateurs de l’imputeur simple et de l’encodeur ordinal de Scikit-Learn lors de l’étape de prétraitement.

Notez que nous n’avons pas besoin d’utiliser des guillemets autour des valeurs des variables de type chaîne dans le fichier YAML. Mais même si nous utilisions des guillemets autour des valeurs des variables de type chaîne, cela ne fait aucune différence.

Le stockage des chemins de fichiers dans le fichier YAML est similaire à la sauvegarde de toute autre valeur dans le fichier YAML. Voici les chemins utilisés lors du prétraitement des données et de l’apprentissage de notre modèle de détection de fraude par carte de crédit.

data_preparation:  training_db: Training_db  training_db_dir: Training_Database  table_name: trainingGoodRawDataTable  schema_training: config/schema_training.json  good_validated_raw_dir: data/Training_Raw_Files_Validated/Good_Raw  master_csv: master.csv

Stockage de listes et de dictionnaires dans le fichier YAML

Il existe deux façons de stocker des listes et des dictionnaires dans un fichier YAML. Voici les hyperparamètres utilisés pour l’optimisation des hyperparamètres du modèle de classification de forêt aléatoire utilisé pour la détection de fraude.

Approche 1 :

random_forest:  cv: 5  verbose: 3  param_grid: {n_estimators: [10, 50, 100, 130], max_depth: [2, 3], max_features: ['auto', 'log2']}

Dans la première approche, nous mettons simplement la liste ou les dictionnaires comme nous le faisons dans le langage de programmation Python. Les dictionnaires sont représentés par une simple paire clé-valeur.

Approche 2 :

random_forest:  cv: 5  verbose: 3  param_grid:     n_estimators:      - 10      - 50      - 100      - 130    max_depth:      - 2      - 3    max_features:      - auto      - log2    

Dans la deuxième approche, tous les membres de la liste commencent par le symbole ‘-‘ au même niveau d’indentation. Les dictionnaires sont représentés par une simple paire clé-valeur.

Chargement des variables à partir du fichier YAML dans le fichier Python

random_forest:  cv: 5  verbose: 3  param_grid:     n_estimators:      - 10      - 50      - 100      - 130    max_depth:      - 2      - 3    max_features:      - auto      - log2

Supposons maintenant que nous voulons accéder à la variable ‘verbose’ de notre fichier ‘parameters.yaml’ dans le fichier python. Nous pouvons le faire de la manière suivante.

import yamlwith open('parameters.yaml') as p:  params = yaml.safe_load(p)verbose = params['random_forest']['verbose']

Vous vous demandez peut-être pourquoi se donner tout ce mal pour importer les variables dans le fichier python à partir du fichier YAML alors que nous pouvons simplement initialiser la variable verbose à 3 ici dans le fichier python. Il y a une raison derrière cette façon de coder.

Supposons que nous voulons utiliser cette variable dans plusieurs fichiers. Et supposons que nous voulons mettre à jour la variable verbose, alors nous devrons passer par tous les fichiers un par un et les modifier. Si nous devions stocker la variable dans le fichier YAML et ensuite l’importer dans chaque fichier python, alors une fois que nous changeons la valeur de la variable dans le fichier YAML, cela se reflétera dans chaque fichier python où elle est utilisée.

Conclusion

Dans cet article, nous avons appris pourquoi nous ne devrions pas utiliser l’approche traditionnelle de stockage des variables dans les fichiers python. Nous avons également appris quels sont les avantages d’utiliser un fichier YAML pour stocker les variables et comment cela aide dans les expériences dans le projet d’apprentissage automatique. Consultez le lien suivant pour le code complet de cet article.

Découvrez les avantages de stocker les variables dans un fichier YAML

Accédez à l’expérience YouTube (et Twitch) dans la console. Plein écran pour une meilleure expérience. Fork pour l’audio et personnalisé…

replit.com

Outro

J’espère que vous aimez l’article. Si vous avez des réflexions sur l’article, veuillez me le faire savoir. De plus, si vous avez aimé l’article, veuillez donner un clap.

Connectez-vous avec moi sur LinkedIn.

En savoir plus sur moi sur mon site Web.

Envoyez-moi un e-mail à [email protected]

Passer une excellente journée !

We will continue to update IPGirl; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AI

Elon Musk met en garde contre la montée de la superintelligence en Chine

L’entrepreneur renommé Elon Musk a récemment fait les gros titres avec sa déclaration audacieuse lors d’u...

AI

Juliette Powell et Art Kleiner, auteurs de la série d'interviews Le dilemme de l'IA

Le dilemme de l'IA est écrit par Juliette Powell et Art Kleiner. Juliette Powell est auteure, créatrice de télévision...

AI

Elon Musk's xAI entraîné sur le flux de Twitter

Elon Musk, le visionnaire derrière des entreprises telles que Tesla et SpaceX, a de nouveau fixé son attention sur le...

AI

Grok L'IA Chatbot de xAI d'Elon Musk

Plongez dans Grok d'Elon Musk par xAI, un chatbot IA avec une récupération d'informations en temps réel, de l'humour ...

AI

Dévoiler l'avenir de l'IA avec GPT-4 et l'IA Explicative (XAI)

Introduction Dans le monde en constante évolution de l’Intelligence Artificielle (IA), GPT-4 est une merveille ...

AI

Elon Musk présente 'Grok' l'AI Chatbot impertinent avec une touche de rébellion

Le monde de la technologie est en effervescence. Elon Musk, le génie derrière des entreprises révolutionnaires comme ...