Метрики
Під час побудови моделі важливо оцінювати її ефективність.
Необхідно мати оцінку, пов’язану з моделлю, яка точно описує, наскільки добре вона відповідає даним. Така оцінка називається метрикою, і існує багато різних метрик.
У цьому розділі ми зосередимося на найбільш поширених з них.
Ми будемо використовувати таку нотацію:
Ми вже знайомі з однією метрикою — SSR (Sum of Squared Residuals), яку ми мінімізували для визначення оптимальних параметрів.
Використовуючи нашу нотацію, ми можемо записати формулу SSR так:
або рівнозначно:
Ця метрика була корисною для порівняння моделей з однаковою кількістю спостережень. Проте вона не дає розуміння того, наскільки добре працює модель. Ось чому:
Припустимо, у вас є дві моделі на різних навчальних наборах (показано на зображенні нижче).
Ви можете побачити, що перша модель добре підходить, але все одно має більший SSR, ніж друга модель, яка візуально гірше відповідає даним. Це сталося лише тому, що в першої моделі значно більше точок даних, тому сума більша, але в середньому залишки першої моделі менші. Тому використання середнього значення квадратів залишків як метрики краще описує модель. Саме це і є Mean Squared Error(MSE).
MSE
або рівнозначно:
Щоб обчислити метрику MSE за допомогою Python, можна скористатися функціями NumPy:
mse = np.mean((y_true-y_pred)**2)
Або скористатися методом mean_squared_error()
з бібліотеки Scikit-learn:
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)
Де y_true
— масив фактичних значень цільової змінної, а y_pred
— масив передбачених значень цільової змінної для тих самих ознак.
Проблема полягає в тому, що помилка, яку показує ця метрика, є піднесеною до квадрату. Наприклад, припустимо, що MSE моделі, яка прогнозує ціни на будинки, становить 49 доларів². Нас цікавить ціна, а не ціна у квадраті, як це дає MSE, тому бажано взяти квадратний корінь з MSE і отримати 7 доларів. Тепер ми маємо метрику з тією ж одиницею виміру, що й передбачене значення. Ця метрика називається Root Mean Squared Error (RMSE) — корінь із середньоквадратичної помилки.
RMSE
Щоб обчислити метрику RMSE за допомогою Python, можна скористатися функціями NumPy:
rmse = np.sqrt(np.mean((y_true-y_pred)**2))
Або можна використати метод Scikit-learn mean_squared_error()
з параметром squared=False
:
from sklearn.metrics import mean_squared_error
rmse = mean_squared_error(y_true, y_pred, squared=False)
MAE
У SSR залишки підносилися до квадрату, щоб позбутися знаку. Інший підхід — брати абсолютні значення залишків замість піднесення до квадрату. Саме це лежить в основі середньої абсолютної похибки (MAE).
або рівнозначно
Це те саме, що й MSE, але замість піднесення залишків до квадрату, ми беремо їх абсолютні значення.
Хоча MAE подібна до MSE, оскільки використовує абсолютні значення залишків, вона є більш стійкою до викидів, оскільки не підсилює великі помилки так сильно, як це робить MSE. У результаті, MAE часто є кращим вибором, коли в наборі даних присутні викиди, оскільки її значення не зростає непропорційно через декілька екстремальних помилок.
Щоб обчислити метрику MAE за допомогою Python, можна скористатися функціями NumPy:
mae = np.mean(np.fabs(y_true-y_pred))
Або скористатися методом Scikit-learn mean_absolute_error()
:
from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)
Для вибору параметрів ми використовували метрику SSR. Це пов’язано з тим, що вона зручна для математичних обчислень і дозволяє отримати нормальне рівняння. Але для подальшого порівняння моделей можна використовувати будь-яку іншу метрику.
Для порівняння моделей SSR, MSE та RMSE завжди однаково визначають, яка модель краща, а яка гірша. MAE іноді може віддати перевагу іншій моделі, ніж SSR/MSE/RMSE, оскільки останні значно сильніше штрафують великі залишки. Зазвичай варто обрати одну метрику заздалегідь і зосередитися на її мінімізації.
Тепер ви точно можете сказати, що друга модель краща, оскільки всі її метрики нижчі. Однак нижчі значення метрик не завжди означають, що модель краща.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 5.26
Метрики
Свайпніть щоб показати меню
Під час побудови моделі важливо оцінювати її ефективність.
Необхідно мати оцінку, пов’язану з моделлю, яка точно описує, наскільки добре вона відповідає даним. Така оцінка називається метрикою, і існує багато різних метрик.
У цьому розділі ми зосередимося на найбільш поширених з них.
Ми будемо використовувати таку нотацію:
Ми вже знайомі з однією метрикою — SSR (Sum of Squared Residuals), яку ми мінімізували для визначення оптимальних параметрів.
Використовуючи нашу нотацію, ми можемо записати формулу SSR так:
або рівнозначно:
Ця метрика була корисною для порівняння моделей з однаковою кількістю спостережень. Проте вона не дає розуміння того, наскільки добре працює модель. Ось чому:
Припустимо, у вас є дві моделі на різних навчальних наборах (показано на зображенні нижче).
Ви можете побачити, що перша модель добре підходить, але все одно має більший SSR, ніж друга модель, яка візуально гірше відповідає даним. Це сталося лише тому, що в першої моделі значно більше точок даних, тому сума більша, але в середньому залишки першої моделі менші. Тому використання середнього значення квадратів залишків як метрики краще описує модель. Саме це і є Mean Squared Error(MSE).
MSE
або рівнозначно:
Щоб обчислити метрику MSE за допомогою Python, можна скористатися функціями NumPy:
mse = np.mean((y_true-y_pred)**2)
Або скористатися методом mean_squared_error()
з бібліотеки Scikit-learn:
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)
Де y_true
— масив фактичних значень цільової змінної, а y_pred
— масив передбачених значень цільової змінної для тих самих ознак.
Проблема полягає в тому, що помилка, яку показує ця метрика, є піднесеною до квадрату. Наприклад, припустимо, що MSE моделі, яка прогнозує ціни на будинки, становить 49 доларів². Нас цікавить ціна, а не ціна у квадраті, як це дає MSE, тому бажано взяти квадратний корінь з MSE і отримати 7 доларів. Тепер ми маємо метрику з тією ж одиницею виміру, що й передбачене значення. Ця метрика називається Root Mean Squared Error (RMSE) — корінь із середньоквадратичної помилки.
RMSE
Щоб обчислити метрику RMSE за допомогою Python, можна скористатися функціями NumPy:
rmse = np.sqrt(np.mean((y_true-y_pred)**2))
Або можна використати метод Scikit-learn mean_squared_error()
з параметром squared=False
:
from sklearn.metrics import mean_squared_error
rmse = mean_squared_error(y_true, y_pred, squared=False)
MAE
У SSR залишки підносилися до квадрату, щоб позбутися знаку. Інший підхід — брати абсолютні значення залишків замість піднесення до квадрату. Саме це лежить в основі середньої абсолютної похибки (MAE).
або рівнозначно
Це те саме, що й MSE, але замість піднесення залишків до квадрату, ми беремо їх абсолютні значення.
Хоча MAE подібна до MSE, оскільки використовує абсолютні значення залишків, вона є більш стійкою до викидів, оскільки не підсилює великі помилки так сильно, як це робить MSE. У результаті, MAE часто є кращим вибором, коли в наборі даних присутні викиди, оскільки її значення не зростає непропорційно через декілька екстремальних помилок.
Щоб обчислити метрику MAE за допомогою Python, можна скористатися функціями NumPy:
mae = np.mean(np.fabs(y_true-y_pred))
Або скористатися методом Scikit-learn mean_absolute_error()
:
from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)
Для вибору параметрів ми використовували метрику SSR. Це пов’язано з тим, що вона зручна для математичних обчислень і дозволяє отримати нормальне рівняння. Але для подальшого порівняння моделей можна використовувати будь-яку іншу метрику.
Для порівняння моделей SSR, MSE та RMSE завжди однаково визначають, яка модель краща, а яка гірша. MAE іноді може віддати перевагу іншій моделі, ніж SSR/MSE/RMSE, оскільки останні значно сильніше штрафують великі залишки. Зазвичай варто обрати одну метрику заздалегідь і зосередитися на її мінімізації.
Тепер ви точно можете сказати, що друга модель краща, оскільки всі її метрики нижчі. Однак нижчі значення метрик не завжди означають, що модель краща.
Дякуємо за ваш відгук!