Объяснение логистической регрессии как классификатора, основанного на концепции регрессии.

Логистическая регрессия

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

где:

Yi = предсказанная метка для i-го образца

Xij=j-е признаки для i-й метки

W0 = точка пересечения или вес регрессии

Wj = вес регрессии j-го признака

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

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

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

Некоторые важные свойства сигмовидной функции f(z):

  1. f(z) близка к 0, когда z → -∞
  2. f(z) близка к 1, когда z → +∞
  3. f(z) равно 1/2, когда z=0 (порог)

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

Функция гипотезы

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

Чтобы преобразовать масштаб входных данных в вероятность от 0 до 1, мы применяем функцию сопоставления . Для модели логистической регрессии этой функцией отображения является логит-функция. Логит-функция отображает вероятности из диапазона (0,1) во весь диапазон действительных чисел (−∞,∞). Это написано как

Где y (шляпа) = вероятность выхода

Предположительно, у нас есть набор входных диапазонов (−∞,∞) в виде линейных уравнений:

Уравнение правой части представляет собой матричную форму. Логит-функцию η можно записать как:

Где:

W = весовая матрица j функций

X = матрица признаков i меток

Y = предсказанная матрица меток для i выборок

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

Таким образом,

Мы получаем сигмоидальную функцию как функцию гипотезы логистической регрессии.

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

Мы уже узнали о функции стоимости J(w) для линейной регрессии в виде

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

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

Чтобы определить функцию стоимости для логистической регрессии, давайте предположим, что наше уравнение гипотезы в логистической регрессии представляет собой условную вероятность нахождения выходной метки между 0 и 1. Учитывая признак x, вес w и известную метку y i-го наблюдения, мы определяем вероятность P как:

В общем случае Вероятность P можно выразить с помощью биномиального распределения при n=1:

Практически мы уже получили признаки x и известную метку y из наборов данных, чтобы максимизировать вероятность P, нам нужно выбрать оптимальный вес, чтобы максимизировать вероятность предсказанной метки. Вероятность определяется как

для упрощения вычислений давайте перепишем функцию правдоподобия в логарифмической форме log(L(w)=(l(w)), широко известной как Log-Likelihood.

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

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

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

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

Используя матричную форму:

Затем шаги для обновления веса:

Где α - скорость обучения.

Далее мы построим логистическую регрессию с использованием Python.

Выполнение

Вспомним модель, которую мы написали для множественной линейной регрессии.

Мы собираемся изменить код, чтобы он работал для случаев логистической регрессии. Сначала измените имя класса на LogisticRegression.

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

Измените итерацию в методе подгонки, выполнив следующие шаги:

  1. Для итерации с 1 по n (свойство класса iters)
  2. Вычислите предсказанную матрицу меток с помощью уравнения 7
  3. Вычислите градиент функции стоимости, используя уравнение 16.
  4. Обновите матрицу весов, используя уравнение 17.

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

  1. Рассчитайте предсказанные метки, используя уравнение 7
  2. Если предсказанные метки › порог возвращают 1, иначе 0

Это полный код модели.

Протестируем модель. Мы собираемся использовать набор данных по раку молочной железы в Висконсине. Этот набор данных содержит измерения ткани молочной железы. Цель состоит в том, чтобы определить, является ли опухоль доброкачественной (безвредной) или злокачественной (то есть опасной, это рак). Доброкачественный класс кодируется как 1, в противном случае злокачественный класс кодируется как 0. Поскольку данные поставляются с Scikit-learn, мы можем загрузить их непосредственно из библиотеки. После загрузки набора данных разделите набор данных на обучающий и тестовый наборы данных.

Теперь давайте предскажем метки:

Чтобы узнать точность прогнозов, воспользуйтесь встроенным accuracy_scoreот Scikit-learn:

Результат:

0.9298245614035088

Показатель точности дал число около 0,93. Это очень хорошо.

Заключение

В этой статье мы узнали:

  1. Логистическая регрессия как алгоритм классификатора машинного обучения, основанный на концепции регрессии.
  2. Получение функции стоимости для логистической регрессии с использованием функции кросс-энтропии
  3. Реализация градиентного спуска в логистической регрессии.

Пожалуйста, поделитесь этим постом и похлопайте, если он вам понравился.

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Присоединяйтесь к нашему сообществу Discord.