Мультиколлинеарность. Где она возникает?
Для построения "успешной" ML модели для решения той или иной задачи под запросы бизнеса зачастую необходимо провести не малую работу с данными, прежде чем переходить к выбору модели. Правильно подобранная модель не решает всех проблем машинного обучения. Одним из факторов "успеха" ML модели является анализ признаков, на которых мы обучаем модель и в последствии делаем предсказания. Одной из возможных проблем может стать мультиколлинеарность. Она возникает там, где один признак может быть выражен как линейная комбинация других, т.е. два или более признаков почти идеально коррелированы друг с другом. Пример, есть какой-то сервис и нам доступна информация о его пользователях, начале пользования услугами (дата регистрации), если пользователь ушёл, дата прекращения использования сервиса, соответственно и кроме того выведен отдельный признак, который содержит информацию о том, какое кол-во дней/месяцев user использовал приложение, с очень большой степенью вероятности, между данными признаками будет наблюдаться высокая корреляция, т.к. через один признак, можно объяснить другой. Или не отходя от примера, указанного ранее, у нас есть информация о сроке использования сервиса в днях/месяцах/годах. Набор таких сильно взаимосвязанных данных негативно влияет на модель и результаты могут быть нестабильными. Точность оценок коэффициентов снижается, что затрудняет определение того, какие переменные-предикторы на самом деле являются статистически значимыми. Для оценки степени корреляции между количественными признаками часто вычисляется коэффициент корреляции Пирсона / Спирмена. Для категориальных переменных можно использовать phik, VIF, Cramer's V. Пороговое значение может меняться от задачи к задаче. На практике в большинстве случаев ориентируются на диапазон от 0.6 до 1.0. Если признаки рассматриваются на основе анализа VIF (variance inflation factor), то он он имеет несколько иной диапазон оценки. Лучше ознакомиться с документацией перед использованием. В борьбе с мультиколлинеарностью могут помочь регуляризация (L1 / L2), управление мультиколлинеарностью путем штрафования больших коэффициентов и делая их менее чувствительными к малым изменениям данных или понижение размерности. Допустимо исключение одной или нескольких сильно скорелированных переменных. Важно помнить, что при понижении размерности мы теряем часть данных, поэтому необходимо внимательно выбирать переменные, чтобы сохранить наиболее важные аспекты в данных. Наличие мультиколлинеарности в данных может повлиять на интерпретируемость модели, неустойчивость оценок коэффициентов. Прежде чем переходить к делению выборок, применению скалеров и кодировщиков, всегда стоит вводить проверку признаков, в том числе в некоторых случаях на дисбаланс классов. Это поможет получить более качественный итоговый результат, т.к. наличие мультиколлинеарности может приводить к большим изменениям в прогнозах при небольших изменениях в данных.