Інтерполяція проти Екстраполяції
У попередньому розділі ми помітили, що наші прогнози за допомогою різних моделей стають більш різноманітними на краях.
Більш точно, прогнози стають дивними в той момент, коли ми виходимо за межі діапазону значень з навчальної вибірки. Прогнозування значень поза межами навчального діапазону називається екстраполяцією, а прогнозування всередині діапазону — інтерполяцією.
Регресія не справляється з екстраполяцією. Вона використовується для інтерполяції та може давати абсурдні прогнози, коли нові випадки виходять за межі навчального діапазону.
Довірчі інтервали
Використовуючи клас OLS
, також можна отримати довірчі інтервали для регресійної лінії в будь-якій точці. Однак синтаксис дещо складний:
lower = regression_model.get_prediction(X_new_tilde).summary_frame(alpha)['mean_ci_lower']
upper = regression_model.get_prediction(X_new_tilde).summary_frame(alpha)['mean_ci_upper']
Де alpha
— це рівень довіри, зазвичай встановлюється як 0.05
.
За допомогою наведеного коду ви отримаєте нижню та верхню межі довірчого інтервалу регресійної лінії в точці X_new_tilde
(або масив верхніх і нижніх меж, якщо X_new_tilde
є масивом).
Враховуючи це, тепер можна побудувати регресійну лінію разом із її довірчим інтервалом:
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()
Без знання розподілу цільової змінної неможливо знайти точну регресійну лінію. Все, що ми робимо — це намагаємося наблизити її на основі наших даних. Довірчий інтервал регресійної лінії — це інтервал, у якому з імовірністю, що дорівнює рівню довіри alpha
, знаходиться точна регресійна лінія.
Можна побачити, що інтервал стає ширшим у міру віддалення від діапазону навчальної вибірки.
Довірчі інтервали будуються за умови, що модель обрана правильно (наприклад, проста лінійна регресія або поліноміальна регресія четвертого ступеня).
Якщо модель обрана невдало, довірчий інтервал є ненадійним, як і сама лінія. У наступному розділі ви дізнаєтеся, як обрати найкращу модель.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 5.26
Інтерполяція проти Екстраполяції
Свайпніть щоб показати меню
У попередньому розділі ми помітили, що наші прогнози за допомогою різних моделей стають більш різноманітними на краях.
Більш точно, прогнози стають дивними в той момент, коли ми виходимо за межі діапазону значень з навчальної вибірки. Прогнозування значень поза межами навчального діапазону називається екстраполяцією, а прогнозування всередині діапазону — інтерполяцією.
Регресія не справляється з екстраполяцією. Вона використовується для інтерполяції та може давати абсурдні прогнози, коли нові випадки виходять за межі навчального діапазону.
Довірчі інтервали
Використовуючи клас OLS
, також можна отримати довірчі інтервали для регресійної лінії в будь-якій точці. Однак синтаксис дещо складний:
lower = regression_model.get_prediction(X_new_tilde).summary_frame(alpha)['mean_ci_lower']
upper = regression_model.get_prediction(X_new_tilde).summary_frame(alpha)['mean_ci_upper']
Де alpha
— це рівень довіри, зазвичай встановлюється як 0.05
.
За допомогою наведеного коду ви отримаєте нижню та верхню межі довірчого інтервалу регресійної лінії в точці X_new_tilde
(або масив верхніх і нижніх меж, якщо X_new_tilde
є масивом).
Враховуючи це, тепер можна побудувати регресійну лінію разом із її довірчим інтервалом:
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()
Без знання розподілу цільової змінної неможливо знайти точну регресійну лінію. Все, що ми робимо — це намагаємося наблизити її на основі наших даних. Довірчий інтервал регресійної лінії — це інтервал, у якому з імовірністю, що дорівнює рівню довіри alpha
, знаходиться точна регресійна лінія.
Можна побачити, що інтервал стає ширшим у міру віддалення від діапазону навчальної вибірки.
Довірчі інтервали будуються за умови, що модель обрана правильно (наприклад, проста лінійна регресія або поліноміальна регресія четвертого ступеня).
Якщо модель обрана невдало, довірчий інтервал є ненадійним, як і сама лінія. У наступному розділі ви дізнаєтеся, як обрати найкращу модель.
Дякуємо за ваш відгук!