Машинне навчання · 7 у порівнянні
Linear model family
Кожна модель тут — це та сама зважена сума, підігнана найменшими квадратами; розділяє їх штраф, доданий до цільової функції, і кожен штраф є іншим твердженням про ваші ознаки.
Порівняння
| Назва Що змінює | Штраф | Обнуляє коефіцієнти? | Гіперпараметри |
|---|---|---|---|
| Linear regression Без штрафу. Мінімізує квадратичну похибку і більше нічого, тож вільно перенавчається за багатьох або корельованих ознак. Повна сторінка → | немає | Ні | немає |
| Ridge Штраф L2. Плавно стискає кожен коефіцієнт, ділячи ефект між корельованими ознаками замість протиставляти їх. Повна сторінка → | L2 — ‖w‖² | Ні | alpha |
| Lasso Штраф L1. Зводить слабкі коефіцієнти точно до нуля, тож підгонка моделі водночас відбирає ознаки. Повна сторінка → | L1 — ‖w‖₁ | Так | alpha |
| Elastic Net Обидва штрафи, зважені. Відбирає ознаки, як Lasso, і тримає корельовані групи разом, як Ridge. Повна сторінка → | L1 + L2 | Так | alpha, l1_ratio |
| Bayesian ridge L2 як апріорний розподіл, а не як налаштування. Вивчає силу штрафу з даних і повертає невизначеність із кожним прогнозом. Повна сторінка → | L2, вивчений | Ні | не налаштовуються |
| Polynomial Не штраф, а розширення — додає степені й перехресні члени, щоб той самий лінійний апарат підганяв криву. Повна сторінка → | сам по собі немає | Ні | degree |
| Logistic Та сама зважена сума через сигмоїду, підігнана за правдоподібністю. Видає ймовірність, тож класифікує, а не прогнозує величину. Повна сторінка → | L2 за замовчуванням | через l1_ratio | C, l1_ratio |
Одна модель, кілька цільових функцій
Кожен рядок вище прогнозує тим самим виразом — зваженою сумою ознак плюс вільним членом. Жоден із них не відрізняється тим, що обчислює під час прогнозу. Вони відрізняються тим, що мінімізують під час підгонки, а це цілком питання того, який штраф прикручено до втрат квадратичної похибки.
Еластична сітка робить цей зв’язок явним, бо містить дві інші моделі: її цільова
функція несе обидва штрафи, зважені через l1_ratio, і за l1_ratio = 0 штраф
суто L2 — Ridge, — а за l1_ratio = 1 він суто L1 — Lasso [1, l1_ratio]. Ridge і Lasso є не так братами еластичної
сітки, як її кінцевими точками.
Вибір — це твердження про ваші ознаки
Рішення полягає не в тому, «що працює краще», а в тому, «у що я вірю»:
- Більшість ознак несуть трохи сигналу → Ridge. Нічого не відкидається, усе притишується.
- Більшість ознак зайві → Lasso. L1 «дає розв’язок, який розрідженіший» [2, §7.1.2]. Розрідженість є припущенням, і модель діятиме за ним.
- Потрібні ознаки йдуть корельованими групами → еластична сітка. Lasso лишив би одну з кожної групи довільно; компонента L2 цьому запобігає.
- Не хочу нічого налаштовувати, і потрібна невизначеність → баєсівський ridge.
Якщо ви не впевнені, еластична сітка може дійти до будь-якої з трьох через пошук
— ціною другого гіперпараметра, l1_ratio
[1, l1_ratio].
Два рядки, що не є штрафами
Два рядки ламають закономірність, і їх варто розглянути окремо.
Поліноміальна регресія змінює ознаки, а не цільову функцію. Це крок передобробки, що передає звичайним найменшим квадратам ширшу матрицю, і він додає місткість, а не прибирає її, — тому його майже завжди поєднують зі штрафом, а не використовують самостійно.
Логістична регресія змінює задачу. Це єдиний рядок, що не прогнозує
величину: зважена сума проходить через сигмоїду й виходить ймовірністю. Її
параметр штрафу теж працює навпаки — C є оберненою величиною до сили
регуляризації, тоді як Ridge і Lasso використовують alpha напряму.
Практична порада
Масштабуйте ознаки перед будь-яким зі штрафованих рядків. Усі ці штрафи діють на сиру величину коефіцієнта, а величина коефіцієнта залежить від одиниць — тож без масштабувальника ви караєте ознаки за те, що їх виміряли в міліметрах.
Налаштовуйте вбудованими крос-валідованими варіантами (RidgeCV, LassoCV,
ElasticNetCV), а не саморобною сіткою. Вони використовують шлях регуляризації
і значно швидші за повторну підгонку з нуля на кожному значенні.
Джерела
- scikit-learn — sklearn.linear_model.ElasticNetdocs · звірено 2026-08-31https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.ElasticNet.html
- Deep Learning (2016)bookhttps://www.deeplearningbook.org/contents/regularization.html