Interpolación vs Extrapolación
En el capítulo anterior, observamos que nuestras predicciones utilizando diferentes modelos se vuelven más diversas en los extremos.
Las predicciones se vuelven poco confiables una vez que salimos del rango de los datos de entrenamiento. Predecir más allá de ese rango es extrapolación, mientras que predecir dentro de él es interpolación.
La regresión no maneja bien la extrapolación. Se utiliza para la interpolación y puede producir predicciones absurdas cuando las nuevas instancias están fuera del rango del conjunto de entrenamiento.
Intervalos de confianza
OLS también puede devolver intervalos de confianza para la línea de regresión:
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 es el nivel de confianza (típicamente 0.05). Esto proporciona los límites inferior y superior para cada valor en X_new_tilde.
Luego se puede graficar la línea de regresión junto con su intervalo de confianza.
12345678910111213141516171819202122import 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()
Como no se conoce la verdadera distribución del objetivo, la línea de regresión es solo una aproximación. El intervalo de confianza indica dónde probablemente se encuentra la línea verdadera. El intervalo se amplía a medida que nos alejamos de los datos de entrenamiento.
Los intervalos de confianza se construyen asumiendo que se eligió correctamente el modelo (por ejemplo, Regresión Lineal Simple o Regresión Polinómica de grado 4).
Si el modelo se elige de manera inadecuada, el intervalo de confianza no es fiable, y la propia línea tampoco lo es. Aprenderá cómo seleccionar el mejor modelo en la siguiente sección.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Can you explain the difference between interpolation and extrapolation in more detail?
How do confidence intervals help us understand the reliability of predictions?
What happens if I use a different value for alpha in the confidence interval calculation?
Awesome!
Completion rate improved to 5.26
Interpolación vs Extrapolación
Desliza para mostrar el menú
En el capítulo anterior, observamos que nuestras predicciones utilizando diferentes modelos se vuelven más diversas en los extremos.
Las predicciones se vuelven poco confiables una vez que salimos del rango de los datos de entrenamiento. Predecir más allá de ese rango es extrapolación, mientras que predecir dentro de él es interpolación.
La regresión no maneja bien la extrapolación. Se utiliza para la interpolación y puede producir predicciones absurdas cuando las nuevas instancias están fuera del rango del conjunto de entrenamiento.
Intervalos de confianza
OLS también puede devolver intervalos de confianza para la línea de regresión:
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 es el nivel de confianza (típicamente 0.05). Esto proporciona los límites inferior y superior para cada valor en X_new_tilde.
Luego se puede graficar la línea de regresión junto con su intervalo de confianza.
12345678910111213141516171819202122import 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()
Como no se conoce la verdadera distribución del objetivo, la línea de regresión es solo una aproximación. El intervalo de confianza indica dónde probablemente se encuentra la línea verdadera. El intervalo se amplía a medida que nos alejamos de los datos de entrenamiento.
Los intervalos de confianza se construyen asumiendo que se eligió correctamente el modelo (por ejemplo, Regresión Lineal Simple o Regresión Polinómica de grado 4).
Si el modelo se elige de manera inadecuada, el intervalo de confianza no es fiable, y la propia línea tampoco lo es. Aprenderá cómo seleccionar el mejor modelo en la siguiente sección.
¡Gracias por tus comentarios!