В контролируемом обучении, почему плохо иметь взаимосвязанные функции?


35

Я где-то читал, что если у нас есть функции, которые слишком коррелируют, мы должны удалить их, так как это может ухудшить модель. Понятно, что коррелированные признаки означают, что они приносят одну и ту же информацию, поэтому логично удалить один из них. Но я не могу понять, почему это может ухудшить модель.


3
Это правило применяется более строго в некоторых моделях и анализе, чем в других. Есть ли шанс, что вы могли бы добавить некоторый контекст к «Я где-то читал» - например, было ли это связано с обучением конкретной модели?
Нил Слэйтер

3
Коррелированные особенности не обязательно ухудшат модель. Удаление коррелированных функций помогает определить смысл этих функций.
Гоббс

Ответы:


31

Связанные функции в целом не улучшают модели (хотя это зависит от специфики проблемы, такой как количество переменных и степень корреляции), но они влияют на конкретные модели по-разному и в разной степени:

  1. Для линейных моделей (например, линейной регрессии или логистической регрессии) мультиколинарность может дать решения, которые сильно варьируются и, возможно, численно нестабильны .

  2. Случайные леса могут быть хороши при обнаружении взаимодействий между различными объектами, но сильно коррелированные объекты могут маскировать эти взаимодействия.

В более общем смысле это можно рассматривать как особый случай бритвы Оккама . Более простая модель предпочтительнее, и, в некотором смысле, модель с меньшим количеством функций является более простой. Концепция минимальной длины описания делает это более точным.


4
Помимо числовой стабильности, предсказание, данное моделью OLS, не должно зависеть от мультиколлинеарности, так как общее влияние переменных предикторов не ухудшается наличием мультиколлинеарности. Это интерпретация влияния отдельных предикторных переменных, которые не являются надежными, когда присутствует мультиколлинеарность.
Akavall

11

(Если вы говорите о контролируемом обучении)

Связанные функции не всегда ухудшат вашу модель, но они также не всегда улучшат ее.

Есть три основные причины, по которым вы бы удалили связанные функции:

  • Сделайте алгоритм обучения быстрее

Из-за проклятия размерности, меньшее количество функций обычно означает значительное улучшение с точки зрения скорости.

Если скорость не является проблемой, возможно, не удаляйте эти функции сразу (см. Следующий пункт)

  • Уменьшить вредный уклон

Ключевое слово вредно. Если у вас есть связанные функции, но они также связаны с целью, вы хотите сохранить их. Вы можете рассматривать функции как подсказки, чтобы сделать правильное предположение, если у вас есть два совета, которые по сути одинаковы, но они являются хорошими подсказками, может быть целесообразно оставить их.

Некоторые алгоритмы, такие как Наивный Байес, на самом деле напрямую извлекают выгоду из «положительных» коррелированных функций. И другие, как случайный лес, могут косвенно извлечь из них пользу.

Представьте, что у вас есть 3 функции A, B и C. A и B тесно связаны с целью и друг с другом, а C - нет вообще. Если вы выберете одну из трех функций, у вас будет 2/3 шанса получить «хорошую» функцию, тогда как, если вы удалите, например, B, этот шанс упадет до 1/2.

Конечно, если взаимосвязанные функции не являются суперинформативными, алгоритм может не сильно пострадать.

Таким образом, мораль истории, удаление этих функций может быть необходимым из-за скорости, но помните, что вы могли бы ухудшить ваш алгоритм в процессе. Кроме того, некоторые алгоритмы, такие как деревья решений, имеют встроенный выбор функций.

Хороший способ справиться с этим - использовать метод-обертку для выбора функций. Это удалит избыточные функции, только если они не влияют непосредственно на производительность. Если они полезны как в наивных байесах, они будут сохранены. (Хотя помните, что методы-обертки дороги и могут привести к переоснащению)

  • Интерпретируемость вашей модели

Если ваша модель должна быть интерпретируемой, возможно, вам придется ее упростить. Не забудьте также запомнить бритву Оккама. Если ваша модель не «намного» хуже с меньшим количеством функций, то вам, вероятно, следует использовать меньше функций.


2

Иногда коррелированные функции - и дублирование информации, которая предоставляет - не повреждает систему прогнозирования. Рассмотрим ансамбль деревьев решений, каждое из которых рассматривает выборку строк и выборку столбцов. Если два столбца имеют высокую степень корреляции, есть вероятность, что один из них не будет выбран в выборке столбцов определенного дерева, и это дерево будет зависеть от оставшегося столбца. Сопоставленные функции означают, что вы можете уменьшить переоснащение (с помощью выборки по столбцам), не отказываясь от слишком высокого качества прогнозирования.


2

Принятие решения должно быть сделано на минимально необходимых переменных для этого. Это, как упоминалось выше, формализация бритвы Оккама с минимальной длиной описания выше. Мне нравится этот.

Я хотел бы охарактеризовать этот феномен в чем-то вроде HDDT, чтобы обозначить наиболее эффективное дерево, которое не принимает ложных решений на основе доступных данных, и избегая всех случаев решений, которые могли бы быть приняты по нескольким точкам данных без понимания того, что они коррелировали ,


Относительно комментария datascience.stackexchange.com/users/38887/valentin-calomme : « Связанные функции не всегда ухудшают вашу модель, но не всегда улучшают и ее». Я не вижу или не могу думать о том, где высокая корреляция между переменными не делает вашу модель хуже. По крайней мере, в том смысле, что, если бы у меня был выбор: я бы предпочел обучить сеть с менее коррелированными функциями. Что-нибудь кроме этого функционально и доказуемо хуже. Есть ли случаи, когда это не так?
tjborromeo

1

С точки зрения хранения данных в базах данных, хранение коррелированных функций как-то похоже на хранение избыточной информации, что может привести к потере памяти, а также к появлению противоречивых данных после обновления или редактирования кортежей.

Если мы добавим в модель столько коррелированных элементов, то это может привести к тому, что модель будет учитывать ненужные элементы, и у нас может быть проклятие проблемы высокой размерности , я думаю, это является причиной ухудшения построенной модели.

В контексте машинного обучения мы обычно используем, PCAчтобы уменьшить размерность шаблонов ввода. Этот подход SVDпредполагает удаление каким-либо образом связанных функций (использование ) и является неконтролируемым подходом. Это делается для достижения следующих целей:

Хотя это может показаться нехорошим, но я видел людей, которые используют удаление связанных функций, чтобы избежать переобучения, но я не думаю, что это хорошая практика. Для получения дополнительной информации я настоятельно рекомендую вам посмотреть здесь .

Другая причина заключается в том, что в моделях глубокого обучения, например, MLPsесли вы добавляете коррелированные функции, вы просто добавляете ненужную информацию, которая добавляет в модель дополнительные вычисления и параметры.


0

Ответ на этот вопрос во многом зависит от цели модели. Вывод, высоко коррелированные признаки являются известной проблемой. Например, две особенности, сильно коррелированные друг с другом и с y, могут оказаться незначительными в модели логического вывода, потенциально пропуская важный пояснительный сигнал. Поэтому, как правило, рекомендуется их прореживать.

Если ваше контролируемое обучение предназначено для предсказания, ответ - вопреки общепринятому мнению - обычно противоположен. Единственная причина удаления сильно коррелированных функций - это проблемы с памятью и скоростью. Помимо этого, что важно для функций, так это то, способствуют ли они прогнозированию и является ли их качество данных достаточным.

Объекты с преобладанием шума будут иметь тенденцию быть менее коррелированными с другими функциями, чем функции, коррелированные с y. Следовательно, как упомянуто выше в примере Валентина, истончение последнего увеличит долю первого.

В частности, такие методы, как случайные леса и KNN, одинаково обрабатывают все функции, поэтому прореживание коррелированных функций напрямую снижает их отношение сигнал / шум.

Методы, которые автоматически выбирают такие функции, как отдельные деревья, «чистые» лассо или нейронные сети, могут быть менее затронуты. Но даже в этом случае, кроме более длительного вычислительного времени, редко можно что-либо потерять в прогнозировании из-за сохранения взаимосвязанных функций в миксе.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.