Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Interpolação vs Extrapolação | Regressão Polinomial
Quizzes & Challenges
Quizzes
Challenges
/
Regressão Linear com Python

bookInterpolação vs Extrapolação

No capítulo anterior, observamos que nossas previsões utilizando diferentes modelos tornam-se mais diversas nas extremidades.

As previsões tornam-se não confiáveis quando nos afastamos do intervalo dos dados de treinamento. Prever além desse intervalo é extrapolação, enquanto prever dentro dele é interpolação.

A regressão não lida bem com a extrapolação. Ela é utilizada para interpolação e pode gerar previsões absurdas quando novas instâncias estão fora do intervalo do conjunto de treinamento.

Intervalos de Confiança

OLS também pode retornar intervalos de confiança para a linha de regressão:

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 é o nível de confiança (tipicamente 0.05). Isso fornece limites inferior e superior para cada valor em X_new_tilde. É possível então plotar a linha de regressão juntamente com seu intervalo de confiança.

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

Como não se conhece a distribuição verdadeira do alvo, a linha de regressão é apenas uma aproximação. O intervalo de confiança indica onde a linha verdadeira provavelmente se encontra. O intervalo se amplia à medida que nos afastamos dos dados de treinamento.

Note
Nota

Os intervalos de confiança são construídos assumindo que escolhemos corretamente o modelo (por exemplo, Regressão Linear Simples ou Regressão Polinomial de grau 4).

Se o modelo for escolhido de forma inadequada, o intervalo de confiança se torna não confiável, assim como a própria linha. Você aprenderá como selecionar o melhor modelo na próxima seção.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 5.26

bookInterpolação vs Extrapolação

Deslize para mostrar o menu

No capítulo anterior, observamos que nossas previsões utilizando diferentes modelos tornam-se mais diversas nas extremidades.

As previsões tornam-se não confiáveis quando nos afastamos do intervalo dos dados de treinamento. Prever além desse intervalo é extrapolação, enquanto prever dentro dele é interpolação.

A regressão não lida bem com a extrapolação. Ela é utilizada para interpolação e pode gerar previsões absurdas quando novas instâncias estão fora do intervalo do conjunto de treinamento.

Intervalos de Confiança

OLS também pode retornar intervalos de confiança para a linha de regressão:

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 é o nível de confiança (tipicamente 0.05). Isso fornece limites inferior e superior para cada valor em X_new_tilde. É possível então plotar a linha de regressão juntamente com seu intervalo de confiança.

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

Como não se conhece a distribuição verdadeira do alvo, a linha de regressão é apenas uma aproximação. O intervalo de confiança indica onde a linha verdadeira provavelmente se encontra. O intervalo se amplia à medida que nos afastamos dos dados de treinamento.

Note
Nota

Os intervalos de confiança são construídos assumindo que escolhemos corretamente o modelo (por exemplo, Regressão Linear Simples ou Regressão Polinomial de grau 4).

Se o modelo for escolhido de forma inadequada, o intervalo de confiança se torna não confiável, assim como a própria linha. Você aprenderá como selecionar o melhor modelo na próxima seção.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 4
some-alt