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