Я где-то читал, что если у нас есть функции, которые слишком коррелируют, мы должны удалить их, так как это может ухудшить модель. Понятно, что коррелированные признаки означают, что они приносят одну и ту же информацию, поэтому логично удалить один из них. Но я не могу понять, почему это может ухудшить модель.
35
Ответы:
Связанные функции в целом не улучшают модели (хотя это зависит от специфики проблемы, такой как количество переменных и степень корреляции), но они влияют на конкретные модели по-разному и в разной степени:
Для линейных моделей (например, линейной регрессии или логистической регрессии) мультиколинарность может дать решения, которые сильно варьируются и, возможно, численно нестабильны .
Случайные леса могут быть хороши при обнаружении взаимодействий между различными объектами, но сильно коррелированные объекты могут маскировать эти взаимодействия.
В более общем смысле это можно рассматривать как особый случай бритвы Оккама . Более простая модель предпочтительнее, и, в некотором смысле, модель с меньшим количеством функций является более простой. Концепция минимальной длины описания делает это более точным.
источник
(Если вы говорите о контролируемом обучении)
Связанные функции не всегда ухудшат вашу модель, но они также не всегда улучшат ее.
Есть три основные причины, по которым вы бы удалили связанные функции:
Из-за проклятия размерности, меньшее количество функций обычно означает значительное улучшение с точки зрения скорости.
Если скорость не является проблемой, возможно, не удаляйте эти функции сразу (см. Следующий пункт)
Ключевое слово вредно. Если у вас есть связанные функции, но они также связаны с целью, вы хотите сохранить их. Вы можете рассматривать функции как подсказки, чтобы сделать правильное предположение, если у вас есть два совета, которые по сути одинаковы, но они являются хорошими подсказками, может быть целесообразно оставить их.
Некоторые алгоритмы, такие как Наивный Байес, на самом деле напрямую извлекают выгоду из «положительных» коррелированных функций. И другие, как случайный лес, могут косвенно извлечь из них пользу.
Представьте, что у вас есть 3 функции A, B и C. A и B тесно связаны с целью и друг с другом, а C - нет вообще. Если вы выберете одну из трех функций, у вас будет 2/3 шанса получить «хорошую» функцию, тогда как, если вы удалите, например, B, этот шанс упадет до 1/2.
Конечно, если взаимосвязанные функции не являются суперинформативными, алгоритм может не сильно пострадать.
Таким образом, мораль истории, удаление этих функций может быть необходимым из-за скорости, но помните, что вы могли бы ухудшить ваш алгоритм в процессе. Кроме того, некоторые алгоритмы, такие как деревья решений, имеют встроенный выбор функций.
Хороший способ справиться с этим - использовать метод-обертку для выбора функций. Это удалит избыточные функции, только если они не влияют непосредственно на производительность. Если они полезны как в наивных байесах, они будут сохранены. (Хотя помните, что методы-обертки дороги и могут привести к переоснащению)
Если ваша модель должна быть интерпретируемой, возможно, вам придется ее упростить. Не забудьте также запомнить бритву Оккама. Если ваша модель не «намного» хуже с меньшим количеством функций, то вам, вероятно, следует использовать меньше функций.
источник
Иногда коррелированные функции - и дублирование информации, которая предоставляет - не повреждает систему прогнозирования. Рассмотрим ансамбль деревьев решений, каждое из которых рассматривает выборку строк и выборку столбцов. Если два столбца имеют высокую степень корреляции, есть вероятность, что один из них не будет выбран в выборке столбцов определенного дерева, и это дерево будет зависеть от оставшегося столбца. Сопоставленные функции означают, что вы можете уменьшить переоснащение (с помощью выборки по столбцам), не отказываясь от слишком высокого качества прогнозирования.
источник
Принятие решения должно быть сделано на минимально необходимых переменных для этого. Это, как упоминалось выше, формализация бритвы Оккама с минимальной длиной описания выше. Мне нравится этот.
Я хотел бы охарактеризовать этот феномен в чем-то вроде HDDT, чтобы обозначить наиболее эффективное дерево, которое не принимает ложных решений на основе доступных данных, и избегая всех случаев решений, которые могли бы быть приняты по нескольким точкам данных без понимания того, что они коррелировали ,
источник
С точки зрения хранения данных в базах данных, хранение коррелированных функций как-то похоже на хранение избыточной информации, что может привести к потере памяти, а также к появлению противоречивых данных после обновления или редактирования кортежей.
Если мы добавим в модель столько коррелированных элементов, то это может привести к тому, что модель будет учитывать ненужные элементы, и у нас может быть проклятие проблемы высокой размерности , я думаю, это является причиной ухудшения построенной модели.
В контексте машинного обучения мы обычно используем,
PCA
чтобы уменьшить размерность шаблонов ввода. Этот подходSVD
предполагает удаление каким-либо образом связанных функций (использование ) и является неконтролируемым подходом. Это делается для достижения следующих целей:Хотя это может показаться нехорошим, но я видел людей, которые используют удаление связанных функций, чтобы избежать переобучения, но я не думаю, что это хорошая практика. Для получения дополнительной информации я настоятельно рекомендую вам посмотреть здесь .
Другая причина заключается в том, что в моделях глубокого обучения, например,
MLPs
если вы добавляете коррелированные функции, вы просто добавляете ненужную информацию, которая добавляет в модель дополнительные вычисления и параметры.источник
Ответ на этот вопрос во многом зависит от цели модели. Вывод, высоко коррелированные признаки являются известной проблемой. Например, две особенности, сильно коррелированные друг с другом и с y, могут оказаться незначительными в модели логического вывода, потенциально пропуская важный пояснительный сигнал. Поэтому, как правило, рекомендуется их прореживать.
Если ваше контролируемое обучение предназначено для предсказания, ответ - вопреки общепринятому мнению - обычно противоположен. Единственная причина удаления сильно коррелированных функций - это проблемы с памятью и скоростью. Помимо этого, что важно для функций, так это то, способствуют ли они прогнозированию и является ли их качество данных достаточным.
Объекты с преобладанием шума будут иметь тенденцию быть менее коррелированными с другими функциями, чем функции, коррелированные с y. Следовательно, как упомянуто выше в примере Валентина, истончение последнего увеличит долю первого.
В частности, такие методы, как случайные леса и KNN, одинаково обрабатывают все функции, поэтому прореживание коррелированных функций напрямую снижает их отношение сигнал / шум.
Методы, которые автоматически выбирают такие функции, как отдельные деревья, «чистые» лассо или нейронные сети, могут быть менее затронуты. Но даже в этом случае, кроме более длительного вычислительного времени, редко можно что-либо потерять в прогнозировании из-за сохранения взаимосвязанных функций в миксе.
источник