Почему бы не приблизиться к классификации через регрессию?

51

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

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

Ответы:

57

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

Прежде чем мы сделаем это, важно прояснить различие между регрессионными и классификационными моделями. Модели регрессии предсказывают непрерывную переменную, такую ​​как количество осадков или интенсивность солнечного света. Они также могут предсказать вероятности, такие как вероятность того, что изображение содержит кошку. Модель регрессии с предсказанием вероятности может использоваться как часть классификатора путем наложения правила принятия решения - например, если вероятность составляет 50% или более, решите, что это кошка.

Логистическая регрессия предсказывает вероятности и, следовательно, является алгоритмом регрессии. Однако в литературе по машинному обучению он обычно описывается как метод классификации, поскольку его можно (и часто) использовать для создания классификаторов. Существуют также «истинные» алгоритмы классификации, такие как SVM, которые только предсказывают результат и не дают вероятности. Мы не будем обсуждать этот алгоритм здесь.

Линейная и логистическая регрессия в задачах классификации

Как объясняет Эндрю Нг , с помощью линейной регрессии вы подгоняете полином к данным - скажем, как в примере ниже, мы подгоняем прямую линию к набору образцов {размер опухоли, тип опухоли} :

введите описание изображения здесь

Выше злокачественные опухоли получают а незлокачественные - , а зеленая линия - наша гипотеза . Чтобы делать прогнозы, мы можем сказать, что для любого данного размера опухоли , если становится больше мы прогнозируем злокачественную опухоль, в противном случае мы прогнозируем доброкачественную.10h(x)xh(x)0.5

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

Интуитивно понятно, что все опухоли с большим определенным порогом являются злокачественными. Итак, давайте добавим еще один образец с огромным размером опухоли и снова запустим линейную регрессию:

введите описание изображения здесь

Теперь наша больше не работает. Чтобы продолжать делать правильные прогнозы, нам нужно изменить его на или что-то еще - но это не так, как должен работать алгоритм.h(x)>0.5malignanth(x)>0.2

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

Надеюсь, это объясняет, почему линейная регрессия не подходит для задач классификации! Кроме того, вы можете посмотреть VI. Логистическая регрессия. Классификационное видео на ml-class.org, которое объясняет идею более подробно.


РЕДАКТИРОВАТЬ

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

введите описание изображения здесь

Обратите внимание, что как линейная регрессия, так и логистическая регрессия дают вам прямую линию (или многочлен более высокого порядка), но эти линии имеют различное значение:

  • h(x) для линейной регрессии интерполирует или экстраполирует выходные данные и предсказывает значение для мы не видели. Это просто, как подключить новый и получить необработанное число, и больше подходит для таких задач, как прогнозирование, скажем, цена автомобиля на основе {размера автомобиля, возраста автомобиля} и т. Д.xx
  • h(x) для логистической регрессии сообщает вам вероятность того, что принадлежит «положительному» классу. Вот почему он называется алгоритмом регрессии - он оценивает непрерывную величину, вероятность. Однако, если вы установите порог вероятности, такой как , вы получите классификатор, и во многих случаях это то, что делается с выводом из модели логистической регрессии. Это эквивалентно расположению линии на графике: все точки, расположенные выше линии классификатора, принадлежат одному классу, а точки ниже принадлежат другому классу.х ч ( х ) > 0,5xh(x)>0.5

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

andreister
источник
@andreister: Но что было бы, если бы все выбросы были удалены или усечены, линейная регрессия все еще плохая идея?
Томек Тарчински
Ваш пример хорош, однако он не показывает, что будет делать «хороший классификатор». Вы могли бы добавить это? обратите внимание, что добавление точек данных должно изменить строку практически для любого метода. Вы не объяснили, почему это плохое изменение.
вероятностная
1
@andreister: Ваш пример показал, что некоторые неверные данные могут испортить линейную регрессию. Но можем ли мы использовать квадратичную регрессию или даже более сложную гипотезу, чтобы сделать «регрессию» хорошим классификатором?
Стрин
1
@probabilityislogic - хороший момент, я обновил ответ.
andreister
2
@Strin: Более сложные гипотезы с большей вероятностью будут соответствовать данным. (То есть, чтобы соответствовать причудам данных, которые у вас есть в руках, что приводит к плохому соответствию будущим данным.) Я помню класс, который я взял, когда парень в первом ряду был просто уверен, что профессор сдерживает нас и не давая нам сложные алгоритмы, которые позволили бы нам совершать убийства на рынках электроэнергии ... Он никогда не понимал переобучения.
Уэйн
14

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

Фрэнк Харрелл
источник
5
Мне кажется , что это эффективна классификация в конечном счете , цель в большинстве любого автоматизированного процесса , в котором оно непрактично или невозможно иметь человеческое вмешательство или суждение. При приеме, скажем, зашумленного передаваемого цифрового сигнала приемник не может решить, что конкретный бит должен быть 0,97 вместо 0 или 1.
Кардинал
6
За исключением того факта, что стоимость ложного положительного результата или стоимость ложного отрицательного результата редко находятся под контролем аналитика, который сделал классификацию, следовательно, оригинальный аналитик не может надежно выбрать «правильную» точку отсечения для классификации. Кроме того, целесообразно иметь «серую зону» промежуточного риска, в которой классификация не проводится, и рекомендация «получить больше данных».
Фрэнк Харрелл
1
Я думаю, что я верю прямо противоположному утверждению в этом ответе, и никогда не сталкивался с этой перспективой во всем моем университетском образовании в области машинного обучения. Мне очень удивительно, что кто-то скажет это. На практике я почти всегда сталкивался с проблемами, когда люди думают, что хотят предсказать непрерывное количество, но на самом деле они хотят предсказать членство в разных категориальных сегментах этого количества. Я изо всех сил пытаюсь найти случаи, когда на самом деле предсказание непрерывного количества полезно с точки зрения существенного вывода, лежащего в основе проблемы.
Ely
9
Я думаю, что вы приняли много догм машинного обучения как должное. Вы делаете большое количество необоснованных предположений. Одним из них является то, что людям на самом деле нужен принудительный выбор в категорическое ведро. Они могут утверждать, что хотят этого, но им действительно не нужно это в большинстве ситуаций. Выбор не должен быть принудительным. Отличный выбор - «нет решения, получите больше данных». Прогнозирование базовой непрерывной величины обычно является тем, что необходимо. Стоит потратить время на изучение теории оптимального (байесовского) решения. Если вы можете привести конкретный пример, я прокомментирую дальше.
Фрэнк Харрелл
11
+1 к комментарию @Frank Harrell. Например, прогнозирование температуры, количества осадков, уровня воды в реке гораздо полезнее, чем прогнозирование того, будет ли он горячим или влажным или затопит. Даже если проблема в овце или козе? оценка pr (овца) более информативна, чем двоичная «овца» или «коза».
Ник Кокс
1

Почему бы не посмотреть на некоторые доказательства? Хотя многие утверждают, что линейная регрессия не подходит для классификации, она все же может работать. Для того, чтобы получить какой - то интуиции, я включил в линейной регрессии (используется в качестве классификатора) в scikit-Learn - х сравнения классификаторов . Вот что происходит:

введите описание изображения здесь

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

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

Для справки, вот так выглядит мой код классификатора:

class LinearRegressionClassifier():

def __init__(self):
    self.reg = LinearRegression()

def fit(self, X, y):
    self.reg.fit(X, y)

def predict(self, X):
    return np.clip(self.reg.predict(X),0,1)

def decision_function(self, X):
    return np.clip(self.reg.predict(X),0,1)

def score(self, X, y):
    return accuracy_score(y,np.round(self.predict(X)))
Nils
источник
0

1,10,100,...1,2,3,...

Nutle
источник