Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Interpolation vs. Extrapolation | Polynomiale Regression
Quizzes & Challenges
Quizzes
Challenges
/
Lineare Regression mit Python

bookInterpolation vs. Extrapolation

Im vorherigen Kapitel haben wir festgestellt, dass unsere Vorhersagen mit verschiedenen Modellen an den Rändern immer unterschiedlicher werden.

Vorhersagen werden unzuverlässig, sobald wir uns außerhalb des Bereichs der Trainingsdaten bewegen. Die Vorhersage außerhalb dieses Bereichs wird als Extrapolation bezeichnet, während die Vorhersage innerhalb dieses Bereichs als Interpolation gilt.

Die Regression eignet sich nicht für die Extrapolation. Sie wird für die Interpolation verwendet und kann zu absurden Vorhersagen führen, wenn neue Instanzen außerhalb des Bereichs des Trainingsdatensatzes liegen.

Konfidenzintervalle

OLS kann auch Konfidenzintervalle für die Regressionslinie zurückgeben:

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 ist das Konfidenzniveau (typischerweise 0.05). Dies liefert untere und obere Grenzen für jeden Wert in X_new_tilde. Anschließend kann die Regressionslinie zusammen mit ihrem Konfidenzintervall geplottet werden.

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

Da die wahre Verteilung des Zielwerts unbekannt ist, stellt die Regressionslinie nur eine Annäherung dar. Das Konfidenzintervall zeigt, wo die wahre Linie wahrscheinlich liegt. Das Intervall wird breiter, je weiter man sich von den Trainingsdaten entfernt.

Note
Hinweis

Die Konfidenzintervalle werden unter der Annahme erstellt, dass das Modell korrekt gewählt wurde (z. B. einfache lineare Regression oder Polynomialregression vierten Grades).

Wenn das Modell schlecht gewählt ist, ist das Konfidenzintervall unzuverlässig und ebenso die Regressionslinie selbst. Im nächsten Abschnitt wird erläutert, wie das beste Modell ausgewählt werden kann.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 5.26

bookInterpolation vs. Extrapolation

Swipe um das Menü anzuzeigen

Im vorherigen Kapitel haben wir festgestellt, dass unsere Vorhersagen mit verschiedenen Modellen an den Rändern immer unterschiedlicher werden.

Vorhersagen werden unzuverlässig, sobald wir uns außerhalb des Bereichs der Trainingsdaten bewegen. Die Vorhersage außerhalb dieses Bereichs wird als Extrapolation bezeichnet, während die Vorhersage innerhalb dieses Bereichs als Interpolation gilt.

Die Regression eignet sich nicht für die Extrapolation. Sie wird für die Interpolation verwendet und kann zu absurden Vorhersagen führen, wenn neue Instanzen außerhalb des Bereichs des Trainingsdatensatzes liegen.

Konfidenzintervalle

OLS kann auch Konfidenzintervalle für die Regressionslinie zurückgeben:

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 ist das Konfidenzniveau (typischerweise 0.05). Dies liefert untere und obere Grenzen für jeden Wert in X_new_tilde. Anschließend kann die Regressionslinie zusammen mit ihrem Konfidenzintervall geplottet werden.

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

Da die wahre Verteilung des Zielwerts unbekannt ist, stellt die Regressionslinie nur eine Annäherung dar. Das Konfidenzintervall zeigt, wo die wahre Linie wahrscheinlich liegt. Das Intervall wird breiter, je weiter man sich von den Trainingsdaten entfernt.

Note
Hinweis

Die Konfidenzintervalle werden unter der Annahme erstellt, dass das Modell korrekt gewählt wurde (z. B. einfache lineare Regression oder Polynomialregression vierten Grades).

Wenn das Modell schlecht gewählt ist, ist das Konfidenzintervall unzuverlässig und ebenso die Regressionslinie selbst. Im nächsten Abschnitt wird erläutert, wie das beste Modell ausgewählt werden kann.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 4
some-alt