Fermer

août 10, 2021

Apprentissage automatique accessible – AWS AutoGluon & Data Prediction


De nombreuses entreprises ont consacré des efforts à l'apprentissage automatique automatisé (AutoML). Il automatise de nombreuses meilleures pratiques et constitue une abstraction pour faciliter l'approche de l'apprentissage automatique pour les développeurs sans expérience préalable. Open source d'AWS, "AutoGluon" est l'une de ces bibliothèques AutoML. AutoGluon est plus rapide, plus robuste et beaucoup plus précis que de nombreuses autres plates-formes AutoML publiques et commerciales, comme le montre leur article ici. De plus, il y a une excellente vidéo youtube du Dr Jonas Mueller (l'auteur de l'article), qui donne un aperçu d'AutoGluon et couvre les points saillants de son article. Après cette recherche préliminaire sur AutoGluon, je voulais explorer plus en profondeur à quel point la bibliothèque est vraiment accessible et la qualité des prédictions avec des paramètres par défaut et aucune optimisation.  

Presque tout le monde dispose aujourd'hui d'une base de données ou de feuilles de calcul pour gérer son activité. J'ai donc décidé d'utiliser ces types de données pour mon exploration et mes tests afin de déterminer si vous pouvez rapidement gagner de la valeur commerciale en utilisant AutoGluon. Il existe deux formes de données qu'AutoGluon peut prédire dans une colonne de table : classification ou régression. La classification est lorsque la réponse provient d'une liste avec des constantes connues. La régression se produit lorsque la valeur peut être un nombre à virgule flottante ayant donc des possibilités presque infinies.  

Classification 

Tout d'abord, concentrons-nous sur la classification. Supposons que vous ayez une table de base de données avec des données manquantes. Peut-être que les données sont perdues à jamais. Peut-être que les données seront éventuellement complétées à l'avenir, mais vous voulez prédire ce qu'elles seront. Dans les deux cas, vous pouvez utiliser l'apprentissage automatique pour trouver des modèles dans les données connues afin de prédire les données manquantes.

Prédire les valeurs manquantes

Dans un sens simplifié, ce processus de recherche d'un modèle est également appelé « entraînement du modèle ». Avec autoML, cela peut être aussi simple qu'une seule ligne de code. Tout ce que vous avez à faire est d'exporter les lignes remplies/connues que vous souhaitez utiliser pour l'entraînement et de fournir les noms de colonnes que vous souhaitez prédire à l'avenir. Voici à quoi ressemble le code.

predictor = TabularPredictor(label=columnpath=save_path).fit(training_datapresets='[19659019]best_quality') 

Lorsque le prédicteur est créé, il est enregistré  sur le disque afin de  peuvent être chargés rapidement à l'avenir.[19659031] Next, exporter les lignes que nous voulons prédire, et pfournir à le prédicteur. Cette 1 ligne de code  ci-dessous  vous fournit la  la colonne de prédictions.

y_pred = predictor.predict(test_data) 

Mais, vous ne voulez pas seulement faire une prédiction, vous voulez connaître aussi la qualité de cette prédiction. Supposons que la colonne que vous vouliez prédire indique si le prix de vente final d'un article sera inférieur à 50 000 $ ou supérieur à 50 000 $. En cas de classifications, il est également possible de connaître les probabilités des prédictions. Surtout lorsque la prédiction est proche de 50/50, vous pouvez envisager de stocker la probabilité avec la prédiction. Cette 1 ligne de code ci-dessous vous fournit des prédictions et leurs probabilités.

pred_probs = predictor.predict_proba(test_data)

Probabilités de Gluton

Amazon Web Services - Évitez les pannes du centre de contact : planifiez votre mise à niveau vers Amazon Connect[19659067]Pour vraiment comprendre la valeur commerciale finale de ces prédictions, cependant, nous devons tester l'exactitude des données en comparant les prédictions aux données réelles. Au lieu de faire des prédictions et d'attendre que des données réelles proviennent de votre entreprise, vous pouvez séparer vos données existantes et créer des données d'entraînement et </span><span class=backtest à partir d'une source de données connue. Par exemple, utilisez le dernier mois comme données de test et les 11 derniers mois comme données d'entraînement. Tant que vos données d'entraînement n'incluent pas vos données de test, votre test est valide.

test_data = # dernier mois à prédire 
y_test = test_data[col_label]  # colonne à prédire 
test_data_nolab) = test_data.19[4590] # delete column 
y_pred = predictor.predict(test_data_nolab)# predict 
perf = predictor.evaluate_predictions_predictions_predictions_y_true=y_082]sy_test= y_196_predict, Vrai)# comparer les valeurs réelles avec les prédictions

Sortie :

{"exactitude" : 0.8397993653393387,
"balanced_accuracy" : 0.7437076677780596,
"mcc" : 0,5295565206264157,
"f1" : 0.6242496998799519,
"précision" : 0.7038440714672441,
"rappel" : 0.5608283002588438} 

Vous trouverez ci-dessus comment recevoir les prédictions et découvrir l'exactitude des prédictions. Il existe une méthode de raccourci si vous souhaitez uniquement évaluer la précision. La seule ligne ci-dessous fait les mêmes instructions que ci-dessus pour créer des prédictions et évaluer l'exactitude de ces prédictions.

predictor.evaluate(test_data)

 

En un mot… 

En bref, créez simplement deux ensembles de données distincts : données d'entraînement et données de test. Les données d'entraînement sont ce que vous utiliserez pour générer un prédicteur. Les données de test sont ce que vous insérerez dans le prédicateur et recevrez les prédications et leurs probabilités. Enfin, vous évaluerez l'exactitude réelle des prédictions.

 

Régression 

Supposons que la colonne que vous souhaitez prédire est une valeur numérique à virgule flottante. Ce type de prédiction est appelé Régression au lieu de Classification. La génération de prédictions utilise les mêmes API, mais la compréhension de la qualité et de la précision des prédictions nécessitera des connaissances en statistiques et une expérience du machine learning. Dans ce type de prédiction, vous n'êtes pas intéressé à obtenir la « bonne » réponse, mais plutôt une prédiction relativement « proche » avec un certain niveau de confiance. Par conséquent, ce n'est pas la probabilité de la « bonne » réponse qui est intéressante, mais la probabilité que la prédiction soit relativement proche de la réponse réelle. Il existe différentes métriques qui fournissent différents points de vue sur cette situation. En fonction des données de votre entreprise, certaines métriques seraient mieux que d'autres à utiliser pour la formation et l'évaluation.

 

Optimisation 

C'est incroyable de voir les résultats de haute qualité d'AutoGluon avec uniquement les paramètres par défaut. Jetez un œil à un article de blog d'AWS montrant qu'AutoGluon obtient les meilleurs scores de 1 % dans un concours de science des données avec quelques lignes de code. Cet article de blog m'a inspiré à essayer un concours pour voir de mes propres yeux à quel point je pouvais faire. Avec uniquement les valeurs par défaut et aucune optimisation, j'ai atteint une précision de 78 % sur la compétition Titanic de Kaggle. AutoGluon a été facile d'obtenir rapidement un résultat de haute qualité sans aucune expertise en ML. En utilisant l'expertise, vous pouvez encore améliorer les prédications avec des concepts de ML typiques tels que l'ingénierie de fonctionnalités.

 

Conclusion 

En utilisant AutoGluon sans expertise en ML, vous pouvez générer des prédictions, comprendre la qualité de ces prédictions et évaluer la précision d'une manière simple et accessible. Grâce à l'expertise en ML, les experts sont désormais en mesure de se concentrer rapidement sur les optimisations sans avoir à créer fastidieusement le premier prototype de qualité. AutoML est un espace évolutif passionnant qui présente le ML aux non-experts et rend les experts plus productifs. À mesure que les techniques modernes d'apprentissage en profondeur sont automatisées, nous continuerons à voir AutoGluon résoudre d'autres problèmes de prédiction courants tels que les données de séries chronologiques.  

Mon équipe travaille fréquemment au sein d'équipes produit pour les aider à créer des applications cloud natives tout en montrant les avantages de nouveaux outils innovants comme AutoGluon pour l'apprentissage automatique. Contactez-nous pour voir comment nous pouvons également aider votre organisation.

 

À propos de l'auteur

Quincy Mitchell est ingénieur logiciel au sein de la pratique Custom Development Solutions pour Perficient. Il adore créer des outils qui aident les ingénieurs à faire plus qu'ils ne peuvent imaginer.

En savoir plus sur cet auteur






Source link