В некоторых материалах, которые я видел по машинному обучению, говорилось, что плохая идея - подходить к проблеме классификации с помощью регрессии. Но я думаю, что всегда можно сделать непрерывную регрессию, чтобы соответствовать данным и усечь непрерывный прогноз, чтобы получить дискретные классификации. Так почему это плохая идея?
51
Ответы:
«… проблема классификации через регрессию…» под «регрессией» я буду подразумевать, что вы имеете в виду линейную регрессию, и я сравню этот подход с подходом «классификации» для подбора модели логистической регрессии.
Прежде чем мы сделаем это, важно прояснить различие между регрессионными и классификационными моделями. Модели регрессии предсказывают непрерывную переменную, такую как количество осадков или интенсивность солнечного света. Они также могут предсказать вероятности, такие как вероятность того, что изображение содержит кошку. Модель регрессии с предсказанием вероятности может использоваться как часть классификатора путем наложения правила принятия решения - например, если вероятность составляет 50% или более, решите, что это кошка.
Логистическая регрессия предсказывает вероятности и, следовательно, является алгоритмом регрессии. Однако в литературе по машинному обучению он обычно описывается как метод классификации, поскольку его можно (и часто) использовать для создания классификаторов. Существуют также «истинные» алгоритмы классификации, такие как SVM, которые только предсказывают результат и не дают вероятности. Мы не будем обсуждать этот алгоритм здесь.
Линейная и логистическая регрессия в задачах классификации
Как объясняет Эндрю Нг , с помощью линейной регрессии вы подгоняете полином к данным - скажем, как в примере ниже, мы подгоняем прямую линию к набору образцов {размер опухоли, тип опухоли} :
Выше злокачественные опухоли получают а незлокачественные - , а зеленая линия - наша гипотеза . Чтобы делать прогнозы, мы можем сказать, что для любого данного размера опухоли , если становится больше мы прогнозируем злокачественную опухоль, в противном случае мы прогнозируем доброкачественную.1 0 ч ( х ) Икс ч ( х ) 0,5
Похоже, таким образом мы могли бы правильно предсказать каждый образец тренировочного набора, но теперь давайте немного изменим задачу.
Интуитивно понятно, что все опухоли с большим определенным порогом являются злокачественными. Итак, давайте добавим еще один образец с огромным размером опухоли и снова запустим линейную регрессию:
Теперь наша больше не работает. Чтобы продолжать делать правильные прогнозы, нам нужно изменить его на или что-то еще - но это не так, как должен работать алгоритм.h ( x ) > 0,5 → m a l i gп п т ч ( х ) > 0,2
Мы не можем изменить гипотезу каждый раз, когда прибывает новая выборка. Вместо этого мы должны изучить его на основе данных обучающего набора, а затем (используя гипотезу, которую мы изучили) сделать правильные прогнозы для данных, которые мы не видели раньше.
Надеюсь, это объясняет, почему линейная регрессия не подходит для задач классификации! Кроме того, вы можете посмотреть VI. Логистическая регрессия. Классификационное видео на ml-class.org, которое объясняет идею более подробно.
РЕДАКТИРОВАТЬ
Вероятность, что спросила, что будет делать хороший классификатор. В этом конкретном примере вы, вероятно, использовали бы логистическую регрессию, которая могла бы выучить такую гипотезу (я просто придумываю это):
Обратите внимание, что как линейная регрессия, так и логистическая регрессия дают вам прямую линию (или многочлен более высокого порядка), но эти линии имеют различное значение:
Итак, суть в том, что в сценарии классификации мы используем совершенно иные рассуждения и совершенно другой алгоритм, чем в сценарии регрессии.
источник
Я не могу вспомнить пример, в котором классификация на самом деле является конечной целью. Почти всегда реальная цель состоит в том, чтобы делать точные прогнозы, например, вероятностей. В этом духе (логистическая) регрессия - ваш друг.
источник
Почему бы не посмотреть на некоторые доказательства? Хотя многие утверждают, что линейная регрессия не подходит для классификации, она все же может работать. Для того, чтобы получить какой - то интуиции, я включил в линейной регрессии (используется в качестве классификатора) в scikit-Learn - х сравнения классификаторов . Вот что происходит:
Граница решения уже, чем у других классификаторов, но точность такая же. Так же, как линейный поддержка вектор классификатором, модель регрессии дает гиперплоскость, разделяющую классы в пространстве признаков.
Как видим, использование линейной регрессии в качестве классификатора может сработать, но, как всегда, я бы перекрестно подтвердил прогнозы.
Для справки, вот так выглядит мой код классификатора:
источник
источник