Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Interpolation vs Extrapolation | Régression Polynomiale
Régression Linéaire Avec Python
course content

Contenu du cours

Régression Linéaire Avec Python

Régression Linéaire Avec Python

1. Régression Linéaire Simple
2. Régression Linéaire Multiple
3. Régression Polynomiale
4. Choisir le Meilleur Modèle

book
Interpolation vs Extrapolation

Dans le chapitre précédent, nous avons remarqué que nos prédictions utilisant différents modèles deviennent plus diverses aux extrémités.

Pour être plus précis, les prédictions deviennent étranges au moment où nous dépassons la plage de valeurs de l'ensemble d'entraînement. Prédire des valeurs en dehors de la plage de l'ensemble d'entraînement s'appelle extrapolation, et prédire des valeurs à l'intérieur de la plage est interpolation.

La régression ne gère pas bien l'extrapolation. Elle est utilisée pour l'interpolation et peut donner des prédictions absurdes lorsque de nouvelles instances sont en dehors de la plage de l'ensemble d'entraînement.

Intervalles de confiance

En utilisant la classe OLS, vous pouvez également obtenir les intervalles de confiance pour la ligne de régression à n'importe quel point. Mais la syntaxe est un peu compliquée :

alpha est un niveau de confiance, généralement fixé à 0.05.
En utilisant le code ci-dessus, vous obtiendrez les bornes inférieure et supérieure de l'intervalle de confiance de la ligne de régression au point X_new_tilde (ou un tableau de bornes supérieures et inférieures si X_new_tilde est un tableau)

Utilisons-le pour tracer la ligne de régression avec 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

Sans connaître la distribution d'une cible, nous ne pouvons pas trouver la ligne de régression exacte. Tout ce que nous faisons, c'est essayer de l'approcher en fonction de nos données. L'intervalle de confiance de la ligne de régression est l'intervalle dans lequel se trouve la ligne de régression exacte avec le niveau de confiance alpha.
Vous pouvez voir que l'intervalle devient de plus en plus grand à mesure qu'il s'éloigne de la plage de l'ensemble d'entraînement.

Remarque

Les intervalles de confiance sont construits en supposant que nous avons correctement choisi le modèle (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, et la ligne elle-même non plus. Vous apprendrez comment 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
We're sorry to hear that something went wrong. What happened?
some-alt