Подробное руководство по логистической регрессии для начинающих.

Логистическая регрессия — одна из наиболее часто используемых прогностических моделей специалистами по данным. В этой статье я объясню некоторые теории логистической регрессии, чтобы вы интуитивно поняли, как она работает.

Затем я углублюсь в метрики, используемые для оценки моделей логистической регрессии, и когда вам следует использовать каждую из них.

Наконец, я покажу вам, как построить модель логистической регрессии на Python с помощью Scikit-Learn.

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

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

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

  • Прогнозирование того, является ли электронное письмо ветчиной или спамом
  • Определение вида животного по его изображению
  • Классификация трафика веб-сайта как доброкачественного или вредоносного

Задачи классификации можно разделить на два типа: бинарная и многоклассовая классификация.

Бинарная классификация предполагает прогнозирование одного из двух классов (например, кошка или собака), а мультиклассовая классификация предполагает прогнозирование одного из многих классов (например, кошка, собака или медведь).

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

Логистическую регрессию можно смоделировать с помощью S-образной кривой, как показано в примере ниже:

По оси X этого графика отложено количество лет работы в компании, которое является зависимой переменной. Ось Y показывает нам вероятность того, что человек получит повышение, и эти значения варьируются от 0 до 1.

Вероятность 0 указывает на то, что человека не повысят по службе, а 1 говорит нам, что его повысят.

Логистическая регрессия возвращает результат 0 (Promoted = No) для вероятностей менее 0,5. Прогноз 1 (Promoted = Yes) возвращается для вероятностей больше или равных 0,5:

Вы можете видеть, что чем больше времени сотрудник проводит в компании, тем выше его шансы на повышение.

Основываясь на концепциях, объясненных выше, у вас может возникнуть следующий вопрос:

Зачем нам нужна логистическая регрессия? Почему мы не можем просто использовать прямую линию, чтобы предсказать, получит ли человек повышение?

Линейная регрессия — это метод, который обычно используется для моделирования проблем с непрерывным выводом. Вот пример того, как линейная регрессия соответствует прямой линии для моделирования наблюдаемых данных:

Однако для задач классификации мы не можем провести такую ​​прямую линию по имеющимся точкам данных.

Это связано с тем, что линия наилучшего соответствия в линейной регрессии не имеет верхней и нижней границ, и прогнозы могут стать отрицательными или превышать единицу.

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

Обратите внимание, что в этом примере линейная регрессия по-прежнему работает для определенных значений.

Для людей с 10-летним стажем работы мы получаем прогноз 1.

Для 3-летнего опыта работы модель предсказывает вероятность 0,3, которая вернет результат 0.

Однако, поскольку верхней границы нет, обратите внимание, как прогнозы для сотрудников с 12-летним опытом работы превышают 1. Точно так же для сотрудников с опытом работы менее 1 года прогнозы становятся отрицательными.

Поскольку мы хотим предсказать двоичный результат (Да/Нет), предсказания должны находиться в диапазоне от 0 до 1. Невозможно иметь отрицательные предсказания или предсказания, превышающие 1.

Чтобы гарантировать, что результат всегда является вероятностью, логистическая регрессия использует сигмовидную функцию, чтобы сжать результат линейной регрессии между 0 и 1:

Вот уравнение линейной регрессии, которое также является уравнением прямой линии:

А это уравнение для логистической регрессии, которое просто сжимает результат линейной регрессии между 0 и 1:

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

Как оценить модели логистической регрессии?

Наиболее популярной метрикой, используемой для оценки эффективности моделей классификации, является точность. Однако точность не всегда является самым надежным показателем хорошей модели, поэтому специалисты по данным часто вместо этого используют такие меры, как точность, полнота и оценка F1.

Вот пример, который поможет вам понять различные метрики классификации и когда их использовать:

Приведенный выше набор данных содержит информацию о том, сдал ли студент экзамен. Значение 1 указывает, что они прошли, а 0 говорит нам, что они не прошли.

Столбец «Фактические» содержит истинные данные, а столбец «Прогноз» содержит прогнозы модели логистической регрессии.

Истинные данные несбалансированы, поскольку 80 % учащихся сдали экзамен, а 20 % не сдали экзамен. Это означает, что набор данных искажен, чтобы представлять больше одного класса, чем другого.

Теперь взгляните на столбец «Прогноз». Обратите внимание, что модель предсказала, что 100% студентов сдали экзамен. Эта модель предсказывает только класс большинства, так что это плохая модель.

Давайте теперь рассчитаем несколько показателей классификации в этом наборе данных:

Точность

Точность рассчитывается по следующей формуле:

Эта модель имеет точность 80%. Однако, как мы отмечали ранее, модель предсказала только один класс и даже не сделала ни одного точного положительного предсказания.

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

Давайте теперь рассмотрим несколько других показателей, которые могут помочь нам преодолеть недостатки точности.

Точность и отзыв

Точность и полнота — это две метрики, используемые для оценки качества положительных прогнозов, сделанных моделью.

Теперь давайте подробнее рассмотрим точность и полноту, а также то, как их вычислить:

1. Точность

Точность — это мера, которая может сказать нам: из всех положительных прогнозов, сколько студентов действительно сдали экзамен?

Он рассчитывается по следующей формуле:

В этом случае точность классификатора составляет 0/0 = 0.

2. Вспомнить

Воспоминание модели может сказать нам: из всех, кто прошел, сколько из них были правильно идентифицированы?

Формула для расчета отзыва:

В этом случае отзыв классификатора равен 0/2 = 0.

F1-счет

Оценка F1 сочетает в себе точность и полноту и дает нам единый результат.

Проще говоря, эта метрика говорит нам, насколько хорошо работает модель, взяв среднее значение ее точности и полноты.

Формула для расчета F1-счета:

В этом случае показатель F1 классификатора равен 2 X 0= 0.

Краткое содержание

Подводя итог, можно сказать, что точность этой модели высока, но ее точность, полнота и F1-оценка равны 0, поскольку она не давала никаких положительных прогнозов.

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

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

Как выполнить логистическую регрессию в Python?

Вы можете запустить следующие строки кода, чтобы построить модель логистической регрессии с помощью Scikit-Learn:

from sklearn.linear_model import LogisticRegression
lr = LogisticRegression() 
lr.fit(X_train,y_train) # train the model
preds = lr.predict(X_test) # make predictions

Спасибо за прочтение! Этот пост изначально был опубликован здесь.