Что такое логистическая регрессия?

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

Он получил свое название от логистической функции, которая является типом экспоненциальной функции. Эта функция характеризуется S-образной кривой (также известной как сигмовидная кривая).

Соответственно, модели логистической регрессии создают S-образные кривые при построении на графиках, например:

Вот важные моменты о логистической регрессии:

  • Логистическая регрессия предназначена для классификации проблем машинного обучения, которые имеют одну двоичную выходную переменную. Проблемы машинного обучения с любым другим типом выходной переменной/(-ей) не должны использовать логистическую регрессию для целей прогнозного моделирования.
  • Алгоритмы логистической регрессии похожи на алгоритмы линейной регрессии в том, что они оба являются алгоритмами прогнозирующего анализа, но с логистической регрессией, использующей более сложную сигмовидную функцию вместо относительно простых линейных функций.
  • В то время как линейная регрессия выдает числовые выходные значения, логистическая регрессия выдает двоичные выходные значения (0 или 1).
  • Хотя логистическая регрессия технически является алгоритмом классификации, она действительно предсказывает вероятности в смысле алгоритма регрессии. Просто вероятность затем преобразуется в двоичное значение (0 или 1)
  • Логистическая регрессия использует другой алгоритм машинного обучения: Оценка максимального правдоподобия, чтобы оценить коэффициенты (бета-значения b) для логистической регрессии на основе доступных обучающих данных.
  • Логистическая регрессия и линейная регрессия используют один и тот же метод подготовки данных.

Пример логистической регрессии в R

Вот фрагмент кода на языке программирования R, демонстрирующий использование модели логистической регрессии:

library(ggplot2)
library(cowplot)
url <- "http://archive.ics.uci.edu/ml/machine-learning-databases/heart-disease/processed.cleveland.data"
data <- read.csv(url, header=FALSE)
...
logistic <- glm(hd ~ ., data = data, family = "binomial")
...
predicted.data <- data.frame(
  probability.of.hd=logistic$fitted.values,
  hd=data$hd)
predicted.data <- predicted.data[
  order(predicted.data$probability.of.hd, decreasing=FALSE),]
predicted.data$rank <- 1:nrow(predicted.data)
ggplot(data=predicted.data, aes(x=rank, y=probability.of.hd)) +
  geom_point(aes(color=hd)) +
  xlab("Index") +
  ylab("Predicted probability of getting heart disease")

Приведенный выше фрагмент кода взят из StatQuest with Josh Starmer, и вы можете найти полную версию этого кода по этой ссылке на GitHub.

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

Вот некоторые примечательные моменты для приведенного выше графика:

  • Диапазон оси Y всегда находится между 0 и 1 для графиков логистической регрессии. Это связано с тем, что зависимая переменная (прогнозируемая вероятность сердечно-сосудистых заболеваний) является дискретной.
  • Точки данных бирюзового цвета представляют пациентов, уже страдающих сердечными заболеваниями. Светло-красные точки данных представляют пациентов без каких-либо сердечных заболеваний в анамнезе.
  • Значение по оси X «Ранг» представляет вероятность того, что у каждого из 297 пациентов в data.frame есть сердечные заболевания, при этом более высокий ранг указывает на высокую вероятность развития сердечных заболеваний.

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

Заключение

Спасибо за чтение этого сообщения в блоге!

Если у вас есть какие-либо вопросы или проблемы, пожалуйста, не стесняйтесь оставлять комментарии в этом посте, и я свяжусь с вами, если найду время.

Если вы нашли эту статью полезной, поделитесь ею и обязательно подпишитесь на меня в Twitter и GitHub, свяжитесь со мной в LinkedIn и подпишитесь на мой канал YouTube.