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 gagnerait ou perdrait son prochain match? Comment pouvez-vous faire de telles prédictions? L'apprentissage automatique peut peut-être apporter une partie de la réponse. Cortana, le nouvel assistant personnel numérique alimenté par Bing qui vient avec Windows Phone 8.1 prédit avec précision 15 des 16 matches de la Coupe du Monde de la FIFA 2014.
Dans ce didacticiel Azure, nous explorerons les fonctionnalités et capacités d'Azure Machine Learning en résolvant l'un des problèmes auxquels nous sommes confrontés dans notre vie quotidienne.
Du développeur de machine learning point de vue, 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.
Les prix de l’essence sont probablement l’un des éléments déjà inscrits 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 de services. De nombreux facteurs peuvent influencer les prix du gaz, des conditions météorologiques aux décisions politiques et aux frais administratifs, et à des facteurs totalement imprévisibles tels que les catastrophes naturelles ou les guerres.
Le plan de ce didacticiel Azure Machine Learning est d'étudier certaines données accessibles et de trouver des corrélations qui peuvent être exploitées pour créer un modèle de prédiction.
Azure Machine Learning Studio est un environnement de développement intégré (IDE) basé sur le Web pour développer des expériences de données. Il est étroitement lié au reste des services cloud d'Azure et cela simplifie le développement et le déploiement de modèles et de services d'apprentissage automatique.
Il y a 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évision des prix du gaz.
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 sur 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:
php convertir en utf-8
Une fois téléchargés, 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.
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.
Le prétraitement des données disponibles implique l'adaptation des 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.
Un autre module appliqué à cette étape de notre didacticiel est le module «Sélection des fonctionnalités par filtre». Ce module détermine les caractéristiques de l'ensemble de données les plus pertinentes pour les résultats que nous voulons prédire. Dans ce cas, comme vous pouvez le voir dans l'image ci-dessous, les quatre caractéristiques les plus pertinentes pour les valeurs «E95» sont «EDG BS», «Pétrole», «USD / HRK» et «EUR / USD».
Puisque «EDG BS» est une autre valeur de «sortie» qui ne peut pas être utilisée pour faire des prédictions, nous n'en sélectionnerons que deux parmi les autres caractéristiques importantes - c'est-à-dire le prix du pétrole et le taux de change sous la colonne USD / HRK.
Un échantillon de l'ensemble de données après le traitement est présenté ci-dessous:
Notre prochaine étape consiste à fractionner les données disponibles à l'aide du module «Split». La première partie des données (dans notre cas 80%) sera utilisée pour entraîner le modèle et le reste pour évaluer le modèle entraîné.
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. Il y a d'abord les données d'entraînement brutes et l'autre est l'algorithme d'apprentissage. Ici, nous utiliserons l'algorithme de «régression linéaire». La sortie du module «Modèle de train» est l'un des paramètres d'entrée du module «Modèle de score». L'autre est le reste des données disponibles. Score Model ajoute une nouvelle colonne à notre ensemble de données, Scored Labels. Les valeurs de 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.
Le module Evaluate Model nous donne une évaluation du modèle entraîné exprimé en valeurs statistiques. Si nous regardons 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, il vaut la peine d'essayer d'utiliser le module «Neural Network Regression». Nous devrons ajouter de nouveaux modules «Train Model» et «Score Model» et relier la sortie au module «Evaluate Model» existant.
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 voyons que les réseaux de neurones fournissent des prédictions légèrement moins précises.
À ce stade, nous pouvons enregistrer les modèles entraînés sélectionnés pour une utilisation future.
Lorsque nous avons un modèle formé, 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 «Entrée de service Web» et «Sortie de service Web». Nous ajouterons un module «Colonnes de projet» pour sélectionner nos valeurs d'entrée et de sortie. Les valeurs d'entrée sont Pétrole et USD / HRK, et la sortie est la valeur prévue dans la colonne «Étiquettes notées» de la sortie «Modèle de score».
L'image ci-dessous montre notre expérience de notation après ces quelques ajustements et après avoir connecté les modules «Entrée de service Web» et «Sortie de service Web» en conséquence.
Une autre fonctionnalité d'aide 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.
Enfin, nous pouvons tester notre service Web de prédiction à l'aide d'un simple formulaire de test.
c++ inclut le fichier cpp
Grâce à ce simple didacticiel d'apprentissage automatique 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 très outil 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 Tibérien . Quel que soit l'environnement de développement que vous aimez, je vous encourage à explorer l'apprentissage automatique et à trouver votre data scientist en vous.