Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Interpolatie Versus Extrapolatie | Polynomiale Regressie
Quizzes & Challenges
Quizzes
Challenges
/
Lineaire Regressie met Python

bookInterpolatie Versus Extrapolatie

In het vorige hoofdstuk merkten we op dat onze voorspellingen met verschillende modellen steeds meer uiteenlopen aan de randen.

Voorspellingen worden onbetrouwbaar zodra we buiten het bereik van de trainingsgegevens gaan. Voorspellen buiten dat bereik wordt extrapolatie genoemd, terwijl voorspellen binnen dat bereik interpolatie is.

De regressie gaat niet goed om met extrapolatie. Het wordt gebruikt voor interpolatie en kan absurde voorspellingen opleveren wanneer nieuwe gevallen buiten het bereik van de trainingsset vallen.

Betrouwbaarheidsintervallen

OLS kan ook betrouwbaarheidsintervallen voor de regressielijn retourneren:

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 is het betrouwbaarheidsniveau (meestal 0.05). Dit geeft de onder- en bovengrens voor elke waarde in X_new_tilde. Vervolgens kan de regressielijn samen met het betrouwbaarheidsinterval worden gevisualiseerd.

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

Omdat de ware verdeling van de target onbekend is, is de regressielijn slechts een benadering. Het betrouwbaarheidsinterval geeft aan waar de werkelijke lijn zich waarschijnlijk bevindt. Het interval wordt breder naarmate de afstand tot de trainingsdata toeneemt.

Note
Opmerking

De betrouwbaarheidsintervallen worden opgebouwd onder de aanname dat het juiste model is gekozen (bijvoorbeeld Eenvoudige Lineaire Regressie of Polynomiale Regressie van graad 4).

Als het model slecht is gekozen, is het betrouwbaarheidsinterval onbetrouwbaar, evenals de lijn zelf. In de volgende sectie leer je hoe je het beste model selecteert.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 4

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 5.26

bookInterpolatie Versus Extrapolatie

Veeg om het menu te tonen

In het vorige hoofdstuk merkten we op dat onze voorspellingen met verschillende modellen steeds meer uiteenlopen aan de randen.

Voorspellingen worden onbetrouwbaar zodra we buiten het bereik van de trainingsgegevens gaan. Voorspellen buiten dat bereik wordt extrapolatie genoemd, terwijl voorspellen binnen dat bereik interpolatie is.

De regressie gaat niet goed om met extrapolatie. Het wordt gebruikt voor interpolatie en kan absurde voorspellingen opleveren wanneer nieuwe gevallen buiten het bereik van de trainingsset vallen.

Betrouwbaarheidsintervallen

OLS kan ook betrouwbaarheidsintervallen voor de regressielijn retourneren:

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 is het betrouwbaarheidsniveau (meestal 0.05). Dit geeft de onder- en bovengrens voor elke waarde in X_new_tilde. Vervolgens kan de regressielijn samen met het betrouwbaarheidsinterval worden gevisualiseerd.

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

Omdat de ware verdeling van de target onbekend is, is de regressielijn slechts een benadering. Het betrouwbaarheidsinterval geeft aan waar de werkelijke lijn zich waarschijnlijk bevindt. Het interval wordt breder naarmate de afstand tot de trainingsdata toeneemt.

Note
Opmerking

De betrouwbaarheidsintervallen worden opgebouwd onder de aanname dat het juiste model is gekozen (bijvoorbeeld Eenvoudige Lineaire Regressie of Polynomiale Regressie van graad 4).

Als het model slecht is gekozen, is het betrouwbaarheidsinterval onbetrouwbaar, evenals de lijn zelf. In de volgende sectie leer je hoe je het beste model selecteert.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 4
some-alt