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

Это один из наиболее широко используемых алгоритмов классификации. Его очень легко реализовать, но он очень хорошо работает на линейно разделимых классах. Регрессия оценивает непрерывное значение целевой переменной. Прогнозируемая переменная является действительным числом. Вместо этого Classification предсказывает класс. То есть индекс в конечном наборе классов. В двоичной классификации вывод является истинным или ложным (0/1).

Где используется логистическая регрессия?

Логистическая регрессия применяется в случае дискретных целевых переменных, таких как бинарные ответы. Чтобы привести несколько примеров, некоторые вопросы, которые относятся к проблеме бинарной классификации:

  • Это спам по электронной почте?
  • На картинке есть кошка?
  • Документ о банковской деятельности?
  • Электронная почта открыта пользователем?
  • Моя машина стоит 150 000 долларов?

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

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

Примеры проблемы многоклассовой классификации:

  • Что это за цветок?
  • Какую сетевую атаку я испытываю?
  • Какая цифра/буква присутствует на изображении?
  • Какова основная тема этой веб-страницы?

Вероятностный подход к логистической регрессии:

В задаче бинарной классификации вывод может быть либо «0», либо «1». Если мы хотим проверить вероятность принадлежности метки к классу «1»? В частности, для заданного вектора признаков найдите класс (0 или 1), который максимизирует условную вероятность.

P(y = “1” | x)

Если мы вычисляем вероятность, проблема классификации выглядит как проблема регрессии. Более того, в задаче бинарной классификации нам нужно вычислить вероятность принадлежности к классу «1», и поэтому это выглядит как четко определенная проблема регрессии. В задаче регрессии классы больше не «1» или «0» (как строки), а 1,0 и 0,0 (как вероятность принадлежности к классу «1»).

Математическое понимание логистической регрессии:

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

По умолчанию = ( Процентная ставка * x) + c

В предыдущем уравнении c — это точка пересечения, а x — это коэффициент, который будет выходом модели логистической регрессии. Перехват и коэффициент будут иметь числовые значения. Предположим, что c равно 5, а x равно -0,2. Уравнение становится:

По умолчанию = (Процентная ставка * -0,2) + 5

Уравнение можно представить в виде двумерного графика с помощью следующей диаграммы:

На предыдущей диаграмме происходит следующее:

  • Функция приближается к 1, когда процентная ставка приближается к бесконечности по оси x.
  • Функция приближается к 0, когда процентная ставка приближается к 0 по оси x.

Давайте посмотрим код

Начнем с набора данных радужной оболочки. Создать и настроить классификатор логистического регрессора очень просто с помощью Scikit-learn, мы используем пару строк Python. Что касается регрессоров, метод fit вызывается для обучения модели, тогда как для прогнозирования класса вам нужно вызвать метод прогнозирования.

‘ Разделение данных на обучающие и тестовые наборы

Первым шагом к созданию любой модели машинного обучения с помощью scikit-learn является разделение данных на обучающие и тестовые наборы. это можно сделать с помощью следующего кода. Код реализует базовый классификатор логистической регрессии и оценивает его показатель точности. затем алгоритм логистической регрессии вписывается в обучающие данные.

Когда мы выполняем фрагмент кода, создаются четыре набора данных. X_train и X_test — это входные предикторы поезда и теста. y_train и Y_test — это входные целевые данные обучения и тестирования. После создания модели мы используем метод прогнозирования в тестовом наборе данных предиктора входных данных, чтобы предсказать соответствующие целевые значения (Y_pred).

Нам нужно создать матрицу путаницы для оценки классификатора. Большинство показателей оценки модели основаны на самой матрице путаницы. На основе значений в матрице путаницы рассчитывается точность классификаторов.

Обратите внимание, что здесь мы не выполняем операцию регрессии; вот почему вектор меток должен содержать целые числа (или индексы классов). Отчет, показанный внизу, показывает очень точный прогноз. Все оценки близки к 1 для всех классов. Поскольку у нас есть 50 образцов в тестовом наборе, 0,96 означает, что неправильно классифицирован только один случай. Это почти идеально 1 в этом примере!

Тонкая настройка гиперпараметров

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

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

Чтобы оптимизировать силу обратной регуляризации, или, сокращенно, C, мы используем следующий код:

Это приводит к выводу, как показано на следующем снимке экрана:

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

Масштабирование данных

Хотя модель показала себя очень хорошо, масштабирование данных является полезным шагом в построении моделей машинного обучения с помощью логистической регрессии, поскольку оно стандартизирует данные в одном и том же диапазоне значений. Для масштабирования данных мы будем использовать функцию StandardScaler(). Это делается с помощью следующего кода:

Предыдущий код привел к улучшению показателя точности модели на 4%, что хорошо, учитывая, что у модели изначально был очень высокий показатель точности.

Лучший и худший случаи логистической регрессии:

Логистическая регрессия — очень популярный алгоритм по следующим причинам:

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

К сожалению, это не идеальный классификатор, и у него есть некоторые недостатки:

  • Часто он не очень эффективен по сравнению с большинством продвинутых алгоритмов, потому что имеет тенденцию к несоответствию (нет гибкости: граница должна быть линией или гиперплоскостью).
  • Это линейно: если проблема нелинейна, невозможно правильно подогнать этот классификатор к набору данных.

Полный код можно найти здесь.



Аплодируйте и делитесь историей, если статья оказалась вам полезной.