В одном из моих недавних интервью мне задали один из рутинных вопросов, который задают новичкам, подавшим заявку на работу, связанную с наукой о данных: «Что за алгоритм представляет собой логистическая регрессия?» Ответил — Классификация. Мой собственный ответ вызвал у меня в голове вопрос или, возможно, мое предполагаемое нарушенное чувство юмора: «Если это алгоритм классификации, почему в его названии есть регрессия?»

Регрессия против классификации

Алгоритмы регрессии и классификации относятся к области контролируемого обучения. Чтобы понять в терминах начального уровня -

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

Классификация. Как следует из названия, оно используется для классификации. Является ли электронное письмо спамом или нет, опухоль доброкачественная или злокачественная, транзакция по кредитной карте мошенническая или нет.

В этой статье мы сосредоточимся на логистической регрессии и поймем ее, реализуя LogisticRegression() в наборе данных для обнаружения мошенничества с кредитными картами, полученном от Kaggle.

Нужная математика за этим

Линейная регрессия, как указывалось ранее, предсказывает непрерывное значение на основе взаимосвязи между зависимыми и независимыми переменными. Если Y (зависимая переменная) является функцией X (независимая переменная), то Y представляется как:

С помощью этого математического выражения вычисляется «линия наилучшего соответствия» , и мы прогнозируем действительный выход y на основе взвешенной суммы входных переменных.

Теперь, используя те же данные, что, если бы нас попросили определить, какое значение принадлежит какому классу? Во-первых, нам нужно создать и определить классы среди значений. В этом случае наш вывод будет двоичным. Либо да, либо нет. Либо 0, либо 1. Вместо предсказания числовой зависимой переменной мы реализуем предсказание/классификацию категориальной зависимой переменной.

Нам нужен алгоритм, который с помощью порога разбивает данные на разные классы. Так как же работает логистическая регрессия? Это проблема классификации, но формализованная в проблему регрессии путем попытки «регрессировать» условную вероятность любого из классов Y = 1. (моделирование условной вероятности: P(Y=1|X=x)P(Y=1|X=x), зная, что

P(Y=0|X=x)=1−P(Y=1|X=x)P(Y=0|X=x)=1−P(Y=1|X=x)) .

На приведенном выше рисунке давайте рассмотрим порог как 0,5. Следовательно -

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

Импорт данных

Описание данных доступно на Kaggle. Идем дальше —

Визуализация

Признак Класс – это двоичный признак, 0 – немошеннический, 1 – мошеннический. Как видно, данные сильно искажены, так как большинство случаев не мошеннические. Функция Класс — это Y (зависимая переменная) в этом сценарии. Это приведет к неточным результатам классификатора, поскольку обучающие данные не распределяются нормально. Давайте уравняем игровое поле.

В бар входит модель машинного обучения:

Бармен: «Что бы вы хотели выпить, сэр?»

Модель машинного обучения: «Все, что есть у большинства».

-кто-то в техническом твиттере.

Подвыборка и наблюдения

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

Это отличается от обычных точечных графиков, которые мы видим. Но это говорит нам о чем-то! Большинство мошеннических транзакций совершаются на сумму от 0 до 2000.

Разделение данных и моделирование

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

Что ж, похоже, что наша модель классифицировала 8 транзакций как немошеннические, хотя они и были мошенническими. И наша оценка точности составляет 93,4%.

TL;DR

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

Блокнот jupyter этого проекта можно найти здесь.

Использованная литература:

  1. http://www.stat.yale.edu/Courses/1997-98/101/linreg.htm
  2. https://www.quora.com/Почему-это-логистическая-регрессия-называется-регрессия-если-это-делает-модель-непрерывные-результаты
  3. https://stats.stackexchange.com/questions/127042/why-isnt-logistic-regression-call-logistic-classification