Intervalles de prédiction pour la régression par gradient boosting

Beginner

This tutorial is from open-source community. Access the source code

Introduction

Ce laboratoire montre comment utiliser la régression quantile pour créer des intervalles de prédiction à l'aide de scikit-learn. Nous allons générer des données synthétiques pour un problème de régression, appliquer la fonction à ces données et créer des observations de la variable cible en utilisant une distribution lognormale. Nous allons ensuite diviser les données en ensembles d'entraînement et de test, ajuster des régresseurs quantiles non linéaires et de moindres carrés, et créer un ensemble d'évaluation régulièrement espacé de valeurs d'entrée couvrant la plage [0, 10]. Nous comparerons la médiane prédite avec la moyenne prédite, analyserons les métriques d'erreur et calibrerons l'intervalle de confiance. Enfin, nous allons régler les hyperparamètres des régresseurs quantiles.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous réglerons rapidement le problème pour vous.

Générer des données synthétiques

Nous allons générer des données synthétiques pour un problème de régression en appliquant la fonction à des entrées aléatoires échantillonnées uniformément. Pour rendre le problème intéressant, nous générons des observations de la variable cible y comme étant la somme d'un terme déterministe calculé par la fonction f et d'un terme de bruit aléatoire qui suit une distribution log-normale centrée. La distribution log-normale n'est pas symétrique et a une queue longue : il est probable d'observer de grands écarts-type, mais il est impossible d'observer de petits écarts-type.

Diviser les données en ensembles d'entraînement et de test

Nous allons diviser les données en ensembles d'entraînement et de test.

Ajuster des régresseurs quantiles non linéaires et de moindres carrés

Nous allons ajuster des modèles de gradient boosting entraînés avec la perte quantile et alpha = 0,05, 0,5, 0,95. Les modèles obtenus pour alpha = 0,05 et alpha = 0,95 produisent un intervalle de confiance de 90 %. Le modèle entraîné avec alpha = 0,5 produit une régression de la médiane.

Créer un ensemble d'évaluation régulièrement espacé de valeurs d'entrée

Nous allons créer un ensemble d'évaluation régulièrement espacé de valeurs d'entrée couvrant la plage [0, 10].

Tracer la fonction de moyenne conditionnelle réelle f

Nous allons tracer la fonction de moyenne conditionnelle réelle f, les prédictions de la moyenne conditionnelle (la perte est égale à l'erreur quadratique), la médiane conditionnelle et l'intervalle conditionnel de 90 % (des 5e et 95e percentiles conditionnels).

Analyser les métriques d'erreur

Nous allons mesurer les modèles avec les métriques mean_squared_error et mean_pinball_loss sur l'ensemble de données d'entraînement. Une colonne montre tous les modèles évalués par la même métrique.

Ajuster les hyperparamètres des régresseurs quantiles

Nous allons ajuster les hyperparamètres d'un nouveau régresseur du 5e percentile en sélectionnant les meilleurs paramètres de modèle par validation croisée sur la perte pinball avec alpha = 0,05. Nous allons ensuite ajuster les hyperparamètres pour le régresseur du 95e percentile.

Sommaire

Ce laboratoire a démontré comment utiliser la régression quantile pour créer des intervalles de prédiction à l'aide de scikit - learn. Nous avons généré des données synthétiques pour un problème de régression, appliqué la fonction à ces données et créé des observations de la variable cible en utilisant une distribution log - normale. Nous avons divisé les données en ensembles d'entraînement et de test, ajusté des régresseurs quantiles non - linéaires et des moindres carrés, et créé un ensemble d'évaluation régulièrement espacé de valeurs d'entrée couvrant la plage [0, 10]. Nous avons comparé la médiane prédite avec la moyenne prédite, analysé les métriques d'erreur et calibré l'intervalle de confiance. Enfin, nous avons ajusté les hyperparamètres des régresseurs quantiles.