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

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

В двух приведенных выше уравнениях уравнение 1 связывает каждую характеристику с весом. Причина, по которой мы называем логистическую регрессию одной из обобщенных линейных моделей. После чего используется функция связи (объяснение будет предоставлено ниже), которая преобразует данные, предоставленные в диапазоне (0,1). Здесь уравнение 2 - это функция связи, которая является сигмоидной функцией, а z - значение, которое дает вам вероятность того, что произойдет одно из событий.

Процесс логистической регрессии

Для данных (X, Y), X - это матрица значений с m примерами и n функциями, а Y - вектор с m примерами. Цель состоит в том, чтобы научить модель предсказывать, к какому классу принадлежат будущие значения. В первую очередь мы создаем весовую матрицу со случайной инициализацией. Затем мы умножаем это на характеристики.

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

После этого вычисляется стоимость той итерации, формула которой

Рассчитывается производная этой стоимости, после чего обновляются веса.

Весь код на Python для логистической регрессии с нуля выглядит так:

Математика и интуиция, лежащие в основе логистической регрессии

Цель алгоритма логистической регрессии - создать линейную границу решения, отделяющую два класса друг от друга. Эта граница решения задается условной вероятностью.

Предположим, что класс выше черной линии (граница решения), то есть '+', классифицируется как '1', а класс ниже границы решения 'o ' определяется как ' 0 '. Что делает логистическая регрессия, так это то, что она вычисляет условную вероятность, т.е.

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

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

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

Соотношение шансов

Мы слышим термин «каковы шансы на победу команды» от многих людей вокруг нас. Шансы - это в основном вероятность того, что событие произойдет, по сравнению с вероятностью того, что событие не произойдет. В логистической регрессии вероятность наступления события может быть выражена формулой

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

Если мы примем во внимание условную вероятность получения результата, P (y = 1 | x; w) равна сигмовидной функции, а p (y = 0 | x; w) = 1-p (y = 0 | x ; w) и если принять, что наша выборка имеет распределение Бернулли, то функция стоимости для модели логистической регрессии получается следующим образом:

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

Реализация логистической регрессии в Scikit-learn приведена ниже.

Прокомментируйте, если обнаружите неточности.

Ссылка на блокнот на github: https://github.com/sidsekhar/Regression-Basics/blob/master/Logistic%20Regression.ipynb
Метрики, связанные с классификацией, будут рассмотрены отдельно.