Tutoriel Azure : Prédire les prix du gaz à l'aide d'Azure Machine Learning Studio

Publié: 2022-03-11

Et si vous pouviez prédire si votre stock de choix augmenterait ou diminuerait au cours du mois prochain ? Ou si votre équipe de football préférée gagnait ou perdait son prochain match ? Comment peut-on faire de telles prédictions ? Peut-être que l'apprentissage automatique peut fournir une partie de la réponse. Cortana, le nouvel assistant personnel numérique propulsé par Bing fourni avec Windows Phone 8.1 a prédit avec précision 15 matchs sur 16 lors de la Coupe du Monde de la FIFA 2014.

Dans ce didacticiel Azure, nous allons explorer les fonctionnalités et les capacités d'Azure Machine Learning en résolvant l'un des problèmes auxquels nous sommes confrontés dans notre vie quotidienne.

Tutoriel Azure Machine Learning

Du point de vue du développeur d'apprentissage automatique, les problèmes peuvent être divisés en deux groupes : ceux qui peuvent être résolus à l'aide de méthodes standard et ceux qui ne peuvent pas être résolus à l'aide de méthodes standard. Malheureusement, la plupart des problèmes de la vie réelle appartiennent au deuxième groupe. C'est là que l'apprentissage automatique entre en jeu. L'idée de base est d'utiliser des machines pour trouver des modèles significatifs dans les données historiques et de les utiliser pour résoudre le problème.

Le problème

Les prix du gaz sont probablement l'un des éléments déjà dans le budget de la plupart des gens. Une augmentation ou une diminution constante peut également influencer les prix d'autres produits d'épicerie et services. De nombreux facteurs peuvent influencer les prix de l'essence, des conditions météorologiques aux décisions politiques et aux frais administratifs, en passant par des facteurs totalement imprévisibles tels que les catastrophes naturelles ou les guerres.

Le plan de ce didacticiel Azure Machine Learning consiste à étudier certaines données accessibles et à trouver des corrélations pouvant être exploitées pour créer un modèle de prédiction.

Studio d'apprentissage machine Azure

Azure Machine Learning Studio est un environnement de développement intégré (IDE) basé sur le Web pour le développement d'expériences de données. Il est étroitement lié au reste des services cloud d'Azure, ce qui simplifie le développement et le déploiement de modèles et de services d'apprentissage automatique.

Création de l'expérience

Il existe cinq étapes de base pour créer un exemple d'apprentissage automatique. Nous examinerons chacune de ces étapes en développant notre propre modèle de prédiction des prix de l'essence.

Obtention des données

La collecte de données est l'une des étapes les plus importantes de ce processus. La pertinence et la clarté des données sont à la base de la création de bons modèles de prédiction. Azure Machine Learning Studio fournit un certain nombre d'exemples d'ensembles de données. Une autre grande collection d'ensembles de données peut être trouvée à archive.ics.uci.edu/ml/datasets.html.

Après avoir collecté les données, nous devons les télécharger dans le Studio via leur mécanisme de téléchargement de données simple :

Studio d'apprentissage machine Azure

Une fois téléchargées, nous pouvons prévisualiser les données. L'image suivante montre une partie de nos données que nous venons de télécharger. Notre objectif ici est de prédire le prix sous la colonne intitulée E95.

Studio d'apprentissage automatique

Notre prochaine étape consiste à créer une nouvelle expérience en faisant glisser et en déposant des modules du panneau de gauche dans la zone de travail.

Azure Machine Learning

Prétraitement des données

Le prétraitement des données disponibles implique d'ajuster les données disponibles à vos besoins. Le premier module que nous utiliserons ici est « Statistiques descriptives ». Il calcule des données statistiques à partir des données disponibles. Outre le module "Statistiques descriptives", l'un des modules couramment utilisés est "Nettoyer les données manquantes". Le but de cette étape est de donner un sens aux valeurs manquantes (nulles) en les remplaçant par une autre valeur ou en les supprimant entièrement.

Définition des fonctionnalités

Un autre module appliqué à cette étape de notre didacticiel est le module "Sélection de fonctionnalités basée sur un filtre". Ce module détermine les caractéristiques de l'ensemble de données qui sont les plus pertinentes pour les résultats que nous voulons prédire. Dans ce cas, comme vous pouvez le voir sur l'image ci-dessous, les quatre caractéristiques les plus pertinentes pour les valeurs "E95" sont "EDG BS", "Oil", "USD/HRK" et "EUR/USD".

sélection de fonctionnalités basée sur un filtre

Étant donné que "EDG BS" est une autre valeur de "sortie" qui ne peut pas être utilisée pour faire des prévisions, nous n'en sélectionnerons que deux parmi les caractéristiques importantes restantes - à savoir le prix du pétrole et le taux de change sous la colonne USD/HRK.

Un exemple de l'ensemble de données après traitement est présenté ci-dessous :

jeu de données Azure Studio

Choisir et appliquer un algorithme

Notre prochaine étape consiste à diviser les données disponibles à l'aide du module "Split". La première partie des données (dans notre cas 80%) sera utilisée pour former le modèle et le reste est utilisé pour noter le modèle formé.

module divisé azur

Les étapes suivantes sont les étapes les plus importantes de l'ensemble du processus d'apprentissage automatique Azure. Le module "Train Model" accepte deux paramètres d'entrée. Le premier est les données de formation brutes, et l'autre est l'algorithme d'apprentissage. Ici, nous utiliserons l'algorithme "Régression linéaire". La sortie du module "Train Model" est l'un des paramètres d'entrée du module "Score Model". L'autre est le reste des données disponibles. Score Model ajoute une nouvelle colonne à notre jeu de données, Scored Labels. Les valeurs sous la colonne "Étiquettes notées" sont plus proches des valeurs de leurs valeurs E95 correspondantes lorsque l'algorithme d'apprentissage appliqué fonctionne bien avec les données disponibles.

module de modèle de train

Le module Evaluate Model nous donne une évaluation du modèle formé exprimée en valeurs statistiques. Si nous examinons le «coefficient de détermination», nous pouvons conclure qu'il y a environ 80% de chances de prédire le prix correct en utilisant ce modèle.

Maintenant, cela vaut la peine d'essayer d'utiliser le module "Neural Network Regression". Nous devrons ajouter de nouveaux modules "Train Model" et "Score Model" et connecter la sortie au module "Evaluate Model" existant.

module de régression de réseau neuronal

Le module "Neural Network Regression" nécessite un peu plus de configuration. Puisqu'il s'agit du module le plus important de toute l'expérience, c'est là que nous devons concentrer nos efforts, peaufiner et expérimenter les paramètres et la sélection de l'algorithme d'apprentissage approprié dans son ensemble.

Dans ce cas, le module Evaluate nous donne une comparaison de nos deux modèles entraînés. Encore une fois, sur la base du coefficient de détermination, nous constatons que les réseaux de neurones fournissent des prédictions légèrement moins précises.

modèle d'évaluation azur

À ce stade, nous pouvons enregistrer les modèles entraînés sélectionnés pour une utilisation future.

modèle formé d'azur

Lorsque nous avons un modèle entraîné, nous pouvons procéder à la création d'une « expérience de notation ». Cela peut être fait en créant une nouvelle expérience à partir de zéro ou en utilisant l'assistant Azure Machine Learning Studio. Sélectionnez simplement le modèle formé et cliquez sur "Créer une expérience de notation". Les nouveaux modules dont nous avons besoin ici sont "Web service input" et "Web service output". Nous ajouterons un module "Project Columns" pour sélectionner nos valeurs d'entrée et de sortie. Les valeurs d'entrée sont le pétrole et l'USD/HRK, et la sortie est la valeur prédite dans la colonne "Scored Labels" de la sortie "Score Model".

L'image ci-dessous montre notre expérience de notation après ces quelques ajustements et après avoir connecté les modules "Web service input" et "Web service output" en conséquence.

expérience de notation

Une autre fonctionnalité d'assistance astucieuse vient jouer à ce stade. Avec "Publish Web Service", vous pouvez créer un service Web simple hébergé sur l'infrastructure cloud d'Azure.

publier un service Web

Prédire de nouvelles données

Enfin, nous pouvons tester notre service Web de prédiction à l'aide d'un simple formulaire de test.

formulaire de test d'azur

formulaire de test d'apprentissage automatique

Conclusion

Grâce à ce didacticiel d'apprentissage automatique simple, nous avons montré comment créer un service Web de prédiction entièrement fonctionnel. Azure Machine Learning Studio intégré à la plateforme Azure peut être un outil très puissant pour créer des expériences de données. Outre Machine Learning Studio, il existe d'autres solutions d'apprentissage automatique telles que Orange et Tiberious. Quel que soit l'environnement de développement que vous aimez, je vous encourage à explorer l'apprentissage automatique et à trouver le data scientist qui sommeille en vous.