Régression non linéaire avec isotonie

Machine LearningMachine LearningBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons explorer la régression isotone à l'aide de scikit-learn. La régression isotone est une technique qui ajuste une fonction non décroissante à des données unidimensionnelles. Elle est utile lorsque vous avez des données qui ne satisfont pas l'hypothèse de linéarité dans un modèle de régression.

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ésoudrons rapidement le problème pour vous.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/isotonic("Isotonic Regression") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/isotonic -.-> lab-71112{{"Régression non linéaire avec isotonie"}} ml/sklearn -.-> lab-71112{{"Régression non linéaire avec isotonie"}} end

Importez les bibliothèques nécessaires

Commencez par importer la classe IsotonicRegression à partir du module sklearn.isotonic.

from sklearn.isotonic import IsotonicRegression

Créez des données d'échantillonnage

Ensuite, nous devons créer quelques données d'échantillonnage pour ajuster notre modèle de régression isotone. Dans cet exemple, nous allons générer deux tableaux, X et y, représentant respectivement les données d'entrée et les valeurs cibles.

import numpy as np

## Génère des données d'entrée aléatoires
np.random.seed(0)
X = np.random.rand(100)
y = 4 * X + np.random.randn(100)

Ajustez le modèle de régression isotone

Maintenant, nous pouvons ajuster le modèle de régression isotone à nos données. Nous créons une instance de la classe IsotonicRegression et appelons la méthode fit avec nos données d'entrée et nos valeurs cibles.

## Ajuste le modèle de régression isotone
ir = IsotonicRegression()
ir.fit(X, y)

Prédire à l'aide du modèle

Après avoir ajusté le modèle, nous pouvons l'utiliser pour effectuer des prédictions sur de nouvelles données. Créons un nouveau tableau X_new et prédisons les valeurs cibles correspondantes.

## Crée de nouvelles données pour la prédiction
X_new = np.linspace(0, 1, 100)
y_pred = ir.predict(X_new)

Visualisez les résultats

Enfin, visualisons les résultats de notre modèle de régression isotone. Nous pouvons tracer les points de données d'origine sous forme de points de dispersion et les valeurs prédites sous forme d'une ligne.

import matplotlib.pyplot as plt

## Trace les données d'origine et les valeurs prédites
plt.scatter(X, y, c='b', label='Données d\'origine')
plt.plot(X_new, y_pred, c='r', label='Régression isotone')
plt.xlabel('X')
plt.ylabel('y')
plt.legend()
plt.show()

Sommaire

La régression isotone est une technique utile lorsque vous avez des données non linéaires qui ne répondent pas aux hypothèses d'un modèle de régression linéaire. En ajustant une fonction non décroissante aux données, la régression isotone fournit une approximation linéaire par morceaux qui capture la tendance sous-jacente dans les données. Dans ce laboratoire, nous avons appris à utiliser la classe IsotonicRegression de scikit-learn pour ajuster un modèle de régression isotone, effectuer des prédictions et visualiser les résultats.