Призначення: Оцінка моделі є критично важливою для визначення того, наскільки добре модель буде працювати на нових, невідомих даних. Це дозволяє нам порівнювати різні моделі та обирати найкращу.
Ключові Метрики для Регресії:
$R²$ / Коефіцієнт Детермінації ($R-squared$)
Суть: Показує, яку частку (відсоток) варіації залежної змінної (Y) пояснює модель (незалежні змінні X).
Значення: 1 — ідеальна модель. 0 — модель працює не краще, ніж просте середнє. Може бути негативним (модель гірша за середнє).
**Код:**Python
from sklearn.metrics import r2_score
y_predicted = model.predict(X_test)
r2 = r2_score(y_true, y_predicted)
Середня Абсолютна Помилка (Mean Absolute Error, MAE)
Суть: Середнє арифметичне абсолютних різниць між прогнозом та реальним значенням.
Формула: $MAE = \frac{1}{n} \sum_{i=1}^{n} |Y_i - \hat{Y}_i|$
Тлумачення: $Y_i$ – реальне значення, $\hat{Y}_i$ – прогнозоване значення, $n$ – кількість спостережень. Легко інтерпретується, оскільки вимірюється в тих же одиницях, що й $Y.$
**Код:**Python
from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_predicted)
Середня Квадратична Помилка (Mean Squared Error, MSE)
Суть: Середнє арифметичне квадратів різниць між прогнозом та реальним значенням.
Формула: $MSE = \frac{1}{n} \sum_{i=1}^{n} (Y_i - \hat{Y}_i)^2$
Тлумачення: Сильніше "штрафує" за великі помилки (через зведення у квадрат). Корисно, коли великі відхилення є особливо небажаними.
**Код:**Python
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_predicted)
Суть: Це фундаментальна проблема в ML, що описує баланс між точністю моделі на тренувальних даних та її здатністю узагальнювати (generalize) на нові дані.
Методи Боротьби та Оцінки:
Розбиття на Вибірки (Train/Test Split)
Призначення: Найпростіший спосіб оцінити модель на "небачених" даних. Дані діляться на дві частини: для навчання моделі (train) та для її тестування (test).
**Код:**Python
from sklearn.model_selection import train_test_split
# test_size=0.2 означає, що 20% даних піде на тест
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Перехресна Валідація (Cross-Validation, CV)
Призначення: Більш надійний метод оцінки, ніж просте розбиття. Дані діляться на K "фолдів" (K-Folds). Модель навчається K разів; кожного разу один фолд використовується для тесту, а решта (K-1) — для навчання. Результат усереднюється.
**Код:**Python
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LinearRegression
model = LinearRegression()
# cv=5 означає 5-fold CV. 'neg_mean_squared_error' - метрика (MSE зі знаком мінус)
scores = cross_val_score(model, X, y, cv=5, scoring='neg_mean_squared_error')
average_mse = -scores.mean()
Призначення: Це модифікація Лінійної Регресії, яка використовується для боротьби з перенавчанням та мультиколінеарністю (коли незалежні змінні сильно корелюють між собою).
Суть (L2 Регуляризація):
Гребенева регресія додає до функції втрат (MSE) "штраф" за величину коефіцієнтів моделі. Це змушує модель утримувати коефіцієнти (ваги $b_i$) малими, що робить модель простішою та менш схильною до перенавчання.
Функція Втрат (Cost Function):
$Cost = MSE + \alpha \sum_{i=1}^{n} b_i^2$