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

datascience.stackexchange https://datascience.stackexchange.com/questions/473

  •  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")

plot of the log odds for our toy example

Теперь давайте сделаем это классификатором. Во -первых, нам нужно преобразовать шансы на журнал, чтобы получить нашу вероятность $ 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")

plot of the probability of gray hair for our toy example

Последнее, что нам нужно, чтобы сделать это классификатором, - это добавить правило решения. Одно очень распространенное правило - классифицировать успех всякий раз, когда $ 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)) $ принимается как класс.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с datascience.stackexchange
scroll top