В чем проблема линейной зависимости признаков?
Что проверяют
Понимаете ли вы, что именно ломается при линейной зависимости признаков: предсказание или интерпретация. Сильный ответ разводит эти две вещи. Следом просят рассказать, как вы обнаружите мультиколлинеарность и что сделаете с ней в линейной модели и в бустинге.
Как отвечать
Признаки линейно зависимы, если один выражается через другие линейной комбинацией. Полная зависимость это, например, рост в сантиметрах и в дюймах. Чаще встречается сильная, но неполная корреляция, её называют мультиколлинеарностью.
Что происходит в линейной регрессии:
- полная зависимость: матрица
XᵀXвырождена, у МНК нет единственного решения.LinearRegressionиз scikit-learn не упадёт, а вернёт одно из решений через псевдообратную матрицу, и веса между дублями будут произвольными; - сильная корреляция: решение есть, но дисперсия коэффициентов огромна. Небольшое изменение выборки меняет веса и даже знаки, стандартные ошибки и p-value теряют смысл;
- предсказание: на данных из того же распределения качество может почти не страдать. Страдают интерпретация и устойчивость.
Диагностика: матрица корреляций ловит только пары, поэтому добавляют VIF (variance_inflation_factor из statsmodels, тревожными считают значения выше 5 или 10), число обусловленности и ранг матрицы признаков.
Что делать:
- отбор: убрать или объединить признаки по смыслу;
- Ridge (L2): стабилизирует решение и делит вес между коррелирующими признаками;
- Lasso (L1): оставит один из группы, но выбор неустойчив, компромисс даёт ElasticNet;
- PCA: убирает зависимость ценой интерпретируемости.
Где спотыкаются
Говорят, что мультиколлинеарность вызывает переобучение. Это другое явление: здесь нестабильны коэффициенты, а не качество на отложенной выборке.
Попадают в ловушку фиктивных переменных: one-hot по всем категориям плюс свободный член дают полную зависимость. Для линейных моделей без регуляризации берут drop='first' в OneHotEncoder.
Думают, что деревьям всё равно. На качество бустинга зависимость влияет слабо, но важность признаков делится между дублями, и оба выглядят менее значимыми, чем есть.