Является ли логистическая регрессия на самом деле алгоритм регрессии?
-
16-10-2019 - |
Вопрос
Обычное определение регрессии (насколько мне известно) Прогнозирование непрерывной выходной переменной из данного набора входных переменных.
Логистическая регрессия - это алгоритм бинарной классификации, поэтому он дает категорический выход.
Это действительно алгоритм регрессии? Если так, почему?
Решение
Логистическая регрессия - это регрессия, в первую очередь. Это становится классификатором, добавив правило решения. Я приведу пример, который идет задом наперед. То есть вместо того, чтобы брать данные и подготовить модель, я собираюсь начать с модели, чтобы показать, как это действительно проблема регрессии.
В логистической регрессии мы моделируем шансы на журнал или логит, что происходит событие, что является непрерывной величиной. Если вероятность того, что событие $ a $ возникает, составляет $ p (a) $, вероятность:
$$ frac {p (a)} {1 - p (a)} $$
Таким образом, шансы на журнал:
$$ log Left ( frac {p (a)} {1 - p (a)} right) $$
Как и в линейной регрессии, мы моделируем это с линейной комбинацией коэффициентов и предикторов:
$$ operatorName {logit} = b_0 + b_1x_1 + b_2x_2 + cdots $$
Представьте, что нам дают модель того, есть ли у человека седые волосы. Наша модель использует возраст в качестве единственного предиктора. Здесь на нашем мероприятии A = у человека седые волосы:
Журнал шансов с седыми волосами = -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) = frac1 {1 + exp (- text {log andds}))} $$
Вот код:
plt.plot(x, 1 / (1 + np.exp(-log_odds(x))))
plt.xlabel("age")
plt.ylabel("probability of gray hair")
Последнее, что нам нужно, чтобы сделать это классификатором, - это добавить правило решения. Одно очень распространенное правило - классифицировать успех всякий раз, когда $ p (a)> 0,5 $. Мы примем это правило, которое подразумевает, что наш классификатор будет предсказывать седые волосы всякий раз, когда человек старше 40 лет, и будет предсказать не серые волосы, когда человек меньше 40 лет.
Логистическая регрессия отлично работает в качестве классификатора и в более реалистичных примерах, но прежде чем это может стать классификатором, это должно быть методикой регрессии!
Другие советы
Короткий ответ
Да, логистическая регрессия - это алгоритм регрессии, и это предсказывает непрерывный результат: вероятность события. То, что мы используем его в качестве двоичного классификатора, обусловлено интерпретацией результата.
Деталь
Логистическая регрессия - это тип модели линейной регрессии обобщения.
В обычной модели линейной регрессии, непрерывный результат, y
, моделируется как сумма продукта предикторов и их эффект:
y = b_0 + b_1 * x_1 + b_2 * x_2 + ... b_n * x_n + e
куда e
это ошибка.
Обобщенные линейные модели не моделируют y
напрямую. Вместо этого они используют преобразования для расширения домена y
всем реальным числам. Это преобразование называется функцией ссылки. Для логистической регрессии функция ссылки - функция Logit (обычно см. Примечание ниже).
Функция 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
вероятность события.
Тот факт, что мы используем его в качестве бинарного классификатора, связан с интерпретацией результата.
Примечание. Пробит - это еще одна функция ссылки, используемая для логистической регрессии, но Logit наиболее широко используется.
Когда вы обсуждаете определение регрессии, предсказывает непрерывную переменную. Логистическая регрессия это бинарный классификатор. Логистическая регрессия - это применение функции логита на выводе обычного регрессионного подхода. Функция логита поворачивается (-inf,+inf) в [0,1]. Я думаю, что именно по историческим причинам сохраняется это имя.
Сказав что -то вроде «Я сделал некоторую регрессию для классификации изображений. В частности, я использовал логистическую регрессию». неправильно.
Чтобы выразить это просто любую гипотетическую функцию $ f $ делает алгоритм регрессии, если $ f: x rightarrow mathbb {r} $. Анкет Таким образом, логистическая функция, которая является $ P (y = 1 | lambda, x) = dfrac {1} {1+e^{- lambda^tx}} in [0,1] $ делает алгоритм регрессии. Здесь $ lambda $ коэффициент или гиперплоскость, обнаруженная из обученных наборов данных и $ x $ это точка данных. Здесь, $ sign (p (y = 1 | lambda, x)) $ принимается как класс.