Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Interpolation contre Extrapolation | Régression Polynomiale
Quizzes & Challenges
Quizzes
Challenges
/
Régression Linéaire Avec Python

bookInterpolation contre Extrapolation

Dans le chapitre précédent, nous avons remarqué que nos prédictions à l'aide de différents modèles deviennent plus variées aux extrémités.

Les prédictions deviennent peu fiables dès que l'on sort de l'intervalle des données d'entraînement. Prédire au-delà de cet intervalle correspond à l'extrapolation, tandis que prédire à l'intérieur correspond à l'interpolation.

La régression ne gère pas bien l'extrapolation. Elle est utilisée pour l'interpolation et peut produire des prédictions absurdes lorsque de nouveaux cas se situent en dehors de l'intervalle du jeu d'entraînement.

Intervalles de confiance

OLS peut également fournir des intervalles de confiance pour la ligne de régression :

lower = model.get_prediction(X_new_tilde).summary_frame(alpha)['mean_ci_lower']
upper = model.get_prediction(X_new_tilde).summary_frame(alpha)['mean_ci_upper']

alpha correspond au niveau de confiance (généralement 0.05). Cela fournit les bornes inférieure et supérieure pour chaque valeur de X_new_tilde. Il est ensuite possible de tracer la courbe de régression accompagnée de son intervalle de confiance.

12345678910111213141516171819202122
import pandas as pd import numpy as np import matplotlib.pyplot as plt import statsmodels.api as sm from sklearn.preprocessing import PolynomialFeatures # Import PolynomialFeatures class file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/poly.csv' df = pd.read_csv(file_link) n = 4 # A degree of the polynomial regression X = df[['Feature']] # Assign X as a DataFrame y = df['Target'] # Assign y X_tilde = PolynomialFeatures(n).fit_transform(X) # Get X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train the model X_new = np.linspace(-0.1, 1.5, 80) # 1-d array of new feature values X_new_tilde = PolynomialFeatures(n).fit_transform(X_new.reshape(-1,1)) # Transform X_new for predict() method y_pred = regression_model.predict(X_new_tilde) lower = regression_model.get_prediction(X_new_tilde).summary_frame(0.05)['mean_ci_lower'] # Get lower bound for each point upper = regression_model.get_prediction(X_new_tilde).summary_frame(0.05)['mean_ci_upper'] # get upper bound for each point plt.scatter(X, y) # Build a scatterplot plt.plot(X_new, y_pred) # Build a Polynomial Regression graph plt.fill_between(X_new, lower, upper, alpha=0.4) plt.show()
copy

Comme la distribution réelle de la variable cible n’est pas connue, la courbe de régression constitue uniquement une approximation. L’intervalle de confiance indique où la vraie courbe est susceptible de se situer. Cet intervalle s’élargit à mesure que l’on s’éloigne des données d’entraînement.

Note
Remarque

Les intervalles de confiance sont construits en supposant que le modèle a été correctement choisi (par exemple, Régression Linéaire Simple ou Régression Polynomiale de degré 4).

Si le modèle est mal choisi, l'intervalle de confiance n'est pas fiable, tout comme la courbe elle-même. Vous apprendrez à sélectionner le meilleur modèle dans la section suivante.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 4

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 5.26

bookInterpolation contre Extrapolation

Glissez pour afficher le menu

Dans le chapitre précédent, nous avons remarqué que nos prédictions à l'aide de différents modèles deviennent plus variées aux extrémités.

Les prédictions deviennent peu fiables dès que l'on sort de l'intervalle des données d'entraînement. Prédire au-delà de cet intervalle correspond à l'extrapolation, tandis que prédire à l'intérieur correspond à l'interpolation.

La régression ne gère pas bien l'extrapolation. Elle est utilisée pour l'interpolation et peut produire des prédictions absurdes lorsque de nouveaux cas se situent en dehors de l'intervalle du jeu d'entraînement.

Intervalles de confiance

OLS peut également fournir des intervalles de confiance pour la ligne de régression :

lower = model.get_prediction(X_new_tilde).summary_frame(alpha)['mean_ci_lower']
upper = model.get_prediction(X_new_tilde).summary_frame(alpha)['mean_ci_upper']

alpha correspond au niveau de confiance (généralement 0.05). Cela fournit les bornes inférieure et supérieure pour chaque valeur de X_new_tilde. Il est ensuite possible de tracer la courbe de régression accompagnée de son intervalle de confiance.

12345678910111213141516171819202122
import pandas as pd import numpy as np import matplotlib.pyplot as plt import statsmodels.api as sm from sklearn.preprocessing import PolynomialFeatures # Import PolynomialFeatures class file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/poly.csv' df = pd.read_csv(file_link) n = 4 # A degree of the polynomial regression X = df[['Feature']] # Assign X as a DataFrame y = df['Target'] # Assign y X_tilde = PolynomialFeatures(n).fit_transform(X) # Get X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train the model X_new = np.linspace(-0.1, 1.5, 80) # 1-d array of new feature values X_new_tilde = PolynomialFeatures(n).fit_transform(X_new.reshape(-1,1)) # Transform X_new for predict() method y_pred = regression_model.predict(X_new_tilde) lower = regression_model.get_prediction(X_new_tilde).summary_frame(0.05)['mean_ci_lower'] # Get lower bound for each point upper = regression_model.get_prediction(X_new_tilde).summary_frame(0.05)['mean_ci_upper'] # get upper bound for each point plt.scatter(X, y) # Build a scatterplot plt.plot(X_new, y_pred) # Build a Polynomial Regression graph plt.fill_between(X_new, lower, upper, alpha=0.4) plt.show()
copy

Comme la distribution réelle de la variable cible n’est pas connue, la courbe de régression constitue uniquement une approximation. L’intervalle de confiance indique où la vraie courbe est susceptible de se situer. Cet intervalle s’élargit à mesure que l’on s’éloigne des données d’entraînement.

Note
Remarque

Les intervalles de confiance sont construits en supposant que le modèle a été correctement choisi (par exemple, Régression Linéaire Simple ou Régression Polynomiale de degré 4).

Si le modèle est mal choisi, l'intervalle de confiance n'est pas fiable, tout comme la courbe elle-même. Vous apprendrez à sélectionner le meilleur modèle dans la section suivante.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 4
some-alt