Является ли логистическая регрессия на самом деле алгоритмом регрессии?

11

Обычное определение регрессии (насколько мне известно) - это прогнозирование непрерывной выходной переменной из заданного набора входных переменных .

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

Это действительно алгоритм регрессии? Если так, то почему?

joews
источник

Ответы:

23

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

В рамках логистической регрессии мы моделируем шансы или логит, что происходит событие, которое является непрерывной величиной. Если вероятность того, что событие произойдет, равна , шансы:P ( A )AP(A)

P(A)1P(A)

Тогда шансы на вход в систему:

log(P(A)1P(A))

Как и в случае линейной регрессии, мы моделируем это с помощью линейной комбинации коэффициентов и предикторов:

logit=b0+b1x1+b2x2+

Представьте, что нам дают модель того, есть ли у человека седые волосы. Наша модель использует возраст как единственный предиктор. Здесь наше событие А = человек с седыми волосами:

логарифм седых волос = -10 + 0,25 * возраст

... Регресс! Вот немного кода Python и сюжет:

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

x = np.linspace(0, 100, 100)

def log_odds(x):
    return -10 + .25 * x

plt.plot(x, log_odds(x))
plt.xlabel("age")
plt.ylabel("log odds of gray hair")

сюжет шансов журнала для нашего игрушечного примера

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

P(A)=11+exp(log odds))

Вот код:

plt.plot(x, 1 / (1 + np.exp(-log_odds(x))))
plt.xlabel("age")
plt.ylabel("probability of gray hair")

График вероятности седых волос для нашего игрушечного примера

Последнее, что нам нужно сделать классификатором, это добавить правило принятия решения. Одно очень распространенное правило - классифицировать успех, когда . Мы примем это правило, которое подразумевает, что наш классификатор будет прогнозировать седые волосы, когда человек старше 40 лет, и прогнозировать не седые волосы, когда ему меньше 40 лет.P(A)>0.5

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

Бен
источник
Хотя на практике люди используют логистическую регрессию как синоним логистической регрессии + двоичный классификатор.
Джинави
10

Короткий ответ

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

подробность

Логистическая регрессия - это тип обобщенной модели линейной регрессии.

В обычной линейной регрессионной модели непрерывный результат yмоделируется как сумма произведений предикторов и их влияния:

y = b_0 + b_1 * x_1 + b_2 * x_2 + ... b_n * x_n + e

где eошибка

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

Функция logit определяется как

ln(y/(1 + y))

Таким образом, форма логистической регрессии:

ln(y/(1 + y)) = b_0 + b_1 * x_1 + b_2 * x_2 + ... b_n * x_n + e

где yвероятность события.

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

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

Кристофер Лоуден
источник
1

Как вы обсуждаете, определение регрессии является предсказанием непрерывной переменной. Логистическая регрессия - это двоичный классификатор. Логистическая регрессия - это применение функции logit на выходе обычного регрессионного подхода. Функция логита превращается (-inf, + inf) в [0,1]. Я думаю, что это просто по историческим причинам, что сохраняет это имя.

Сказав что-то вроде: «Я сделал некоторую регрессию для классификации изображений. В частности, я использовал логистическую регрессию». неправильно.

iliasfl
источник
2
Логистическая регрессия может использоваться в качестве бинарного классификатора, но по своей сути она не является таковой. Вы можете использовать его для оценки шансов или определения отношения переменной предиктора к результату.
MattBagg
0

ff:XRP(Y=1|λ,x)=11+eλTx[0,1]λxsign(P(Y=1|λ,x))

Мистер Сигма
источник