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

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

  1. "Линейная регрессия"
  2. Градиентный спуск

Если вы хотите следить за темой с интерактивным кодом, я сделал блокнот Kaggle именно для этой цели. Нажмите здесь, чтобы попробовать сами!

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

(Когда у лука была сладкая сочная серединка?)

(Я не знаю… он, наверное, имел в виду… фрукты?)

Помимо лука, давайте сначала узнаем о границе принятия решения.

Граница принятия решения

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

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

Его можно рассчитать, используя уравнение самой прямой. Уравнение прямой в общем виде можно представить так:

Где

  • а - коэффициент при х,
  • b – коэффициент y.
  • c — некоторая произвольная константа.

Используя это уравнение, мы можем предположить, что уравнение границы решения:

Где,

  • x1 — это первая переменная функции.
  • x2 — вторая переменная функции.

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

Теперь, когда у нас есть способ построить границу решения, вы можете подумать: «Почему бы нам не использовать для этого линейную регрессию? Это может помочь нам построить линию на основе значений β».

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

  1. Для логистической регрессии нам понадобится способ получить значения с точки зрения вероятностей.
  2. Для логистической регрессии нам понадобится новая функция затрат.

Сигмовидная функция

Сигмовидная функция выглядит примерно так

Он принимает любую серию и выдает эту серию с точки зрения вероятностей, что ограничивает ее от 0 до 1. Давайте рассмотрим это на примере.

Предположим, у меня есть список чисел от -100 до 100, {num | число ∈ [-100, 100]}. Если я передам этот список внутрь сигмовидной функции, он превратится во что-то вроде этого.

На приведенном выше графике показана вероятность того, что число больше или меньше нуля. Если мы скажем, что каждое число с соответствующим сигмоидальным значением, которое больше 0,5, больше 0, а каждое число с соответствующим сигмоидальным значением, которое меньше 0,5, меньше 0, то у нас будет список всех положительных и числовых чисел присутствует в нашем списке ввода.

Мы можем попытаться предсказать класс элемента, используя β0+β1x1+β2x2. Если мы построим эту линию на графике, она будет выглядеть примерно так.

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

Это уравнение можно записать в терминах матриц.

Где -

  • B — матрица со всеми коэффициентами регрессии.

  • X — это матрица со всеми значениями признаков с добавленным столбцом с единицами.

Сигмовидная функция может помочь нам в различении двух классов, но только тогда, когда у нас есть уравнение идеальной линии, которое можно передать в функцию. А как можно получить уравнение идеальной прямой? Это просто. Путем минимизации функции стоимости для логистической регрессии.

Функция стоимости

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

Функция правдоподобия

Итак… мы знаем, что логистическая регрессия используется для бинарной классификации. Это означает, что прогнозы могут быть только 0 или 1 (либо они принадлежат классу, либо нет). Итак, предположим, что вероятность того, что что-то принадлежит классу 1, равна p, тогда вероятность того, что это принадлежит классу 0, будет равна 1−p.

Мы можем объединить эти два уравнения в что-то вроде этого.

Если мы заменим y на 1, мы получим следующее.

Если мы заменим y на 0, мы получим следующее.

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

Логарифмическая функция правдоподобия

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

Эта функция принимает значения пи и 1-пи в диапазоне от 0 до 1 (она принимает вероятности).

Давайте построим журнал чисел, которые попадают между 0 и 1.

Как видите, логарифм чисел от 0 до 1 отрицательный. Это означает, что вся функция P(y) будет отрицательной для всех входных данных. Поэтому мы должны умножить −1 на P(y), чтобы это исправить.

И вот еще. ∑ni=1(yi log pi+(1−yi)log(1−pi) дает нам сумму всех ошибок, а не среднее значение. Поэтому, чтобы исправить это, мы можем разделить все уравнение на n, чтобы получить среднее значение всех ошибок .

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

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

Градиентный спуск

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

Согласно теореме о сходимости идеальное значение β можно рассчитать с помощью приведенного ниже уравнения.

Все, что нам нужно сделать, это найти значение ∂J/∂βn для каждого β, и все готово.

Мы знаем функцию стоимости, поэтому можем получить значение ∂J/∂β0, применяя к ней частичное дифференцирование.

Мы знаем это

При добавлении −1 и 1 к приведенному выше уравнению мы получаем

Подставив ∂pi∂β0 в производную функции стоимости по β0, получим

Точно так же, если вы продифференцируете J по β1, вы получите

В общем случае для βn вы получите

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

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

Если вы сравните это с линией на изображении 7, вы увидите, что она преодолевает недостаток, который был у предыдущей строки. Значения, предсказанные этой строкой, находятся в диапазоне от 0 до 1.

Получив идеальные значения β, мы можем передать их в уравнение на изображении 4, чтобы получить границу решения.

Источники -

  1. Статквест на Youtube,
  2. Статья Аншула Шайни Аналитика видхья.
  3. Статья на Medium.com Аши Понрадж.
  4. Статья о KDNuggets Клэр Лю.
  5. Статья на satishgunjal.com Сатиша Гунджала.
  6. Статья Мегхи Сетиа о потере журналов на Analytics Vidhya.
  7. Блокнот Kaggle Риши Джейна.