Если вы еще не прочитали мою предыдущую статью о линейной регрессии https://medium.com/@the.data.yoga/linear-regression-all-you-need-to-know-de44f93bc5fe, я настоятельно рекомендую вам посетить его, так как мы будем использовать множество концепций из этой статьи для реализации логистической модели, а также для сравнения того, насколько она отличается от модели линейной регрессии.

Часто один из распространенных вопросов как учащихся, так и интервьюеров заключается в том, зачем нам нужна логистическая регрессия, если у нас уже есть линейная регрессия?

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

  1. Линейная регрессия. Цель состоит в том, чтобы найти коэффициенты для уравнения, которые при применении к входным переменным (x1,x2,….x(n)) дадут наилучшее приближение для выходной переменной y.
  2. Логистическая регрессия. Цель состоит в том, чтобы найти коэффициенты для уравнения, которое при применении к входным переменным (x1,x2,….x(n)) даст вероятность от 0 до 1 для переменной y принадлежать к определенному классу.

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

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

Вышеупомянутая характеристика делает два типа регрессионных (основанных на уравнениях) моделей принципиально разными.

Теперь давайте рассмотрим математику логистической регрессии. Как видно из линии логистической регрессии, похоже, что сигмовидная функция будет хорошо соответствовать этой кривой, подробнее о сигмовидной кривой см. здесь (https://en.wikipedia.org/wiki/Sigmoid_function) .

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

Давайте разберемся с расчетом максимизации правдоподобия. Предположим, что в наборе данных есть n точек, из которых x точек (A1, A2,….Ax) принадлежит классу 0, а y точек (B1, B2… By) принадлежит к классу 1, такой, что n=x+y.

Ожидается, что модель будет предсказывать вероятность для каждой из n точек таким образом, чтобы максимизировать (1-P(A1)) * (1-P(A2))* …….*(1-P(Ax)) * P (B1)*P(B2)……P(By), где P(i) обозначает сгенерированную моделью вероятность для заданного набора независимых переменных, где i — строка .

Математически уравнение между зависимыми и независимыми переменными можно объяснить как

logit = b0+b1x1+b2x2+……+ b(n)x(n), где b0, b1,…b(n) — коэффициенты при переменных x1,x2,…..x(n)

Как мы знаем, логит - это логарифм шансов, а шансы = P / (1-P) из простой вероятности, поэтому уравнение можно записать следующим образом:

=› log(P/(1-P)) = b0+b1x1+b2x2+……+ b(n)x(n)

=> P/(1-P) = e^(b0+b1x1+b2x2+……+ b(n)x(n))

=> (1-P)/P = e^-(b0+b1x1+b2x2+……+ b(n)x(n))

=> (1/P) -1 = e^-(b0+b1x1+b2x2+……+ b(n)x(n))

=> 1/P = 1+e^-(b0+b1x1+b2x2+……+ b(n)x(n))

=> P = 1/(1 + e^-(b0+b1x1+b2x2+……+ b(n)x(n)))

и, следовательно, уравнение для нахождения вероятности для класса в логистической регрессии представляет собой сигмовидную функцию, представленную как -

P = 1/(1 + e^-(b0+b1x1+b2x2+……+ b(n)x(n)))

# Программный подход

Подобно линейной регрессии, модель логистической регрессии можно настроить с помощью библиотеки Python statsmodels в несколько строк кода. Пример данных, используемых в примере ниже, можно загрузить по ссылке https://drive.google.com/file/d/1g4Ib_zuG_hJG6VWlXvqANti69w5cM66K/view?usp=sharing.

импортировать statsmodels.api как sm
импортировать pandas как pd

X = pd.read_csv(‘data.csv’, index_col = 0)
y = df.pop(‘допущено’)

log_reg = sm.Logit(ytrain, Xtrain).fit()

log_reg.summary()

Сводка по модели выглядит следующим образом

Важные вещи, которые следует отметить в этом резюме,

  1. Псевдо R-кв. -Заменитель R-квадрата линейной регрессии, представляющий отношение логарифмической вероятности, рассчитанное между до и после подгонки модели
  2. Логарифмическое правдоподобие-Это логарифм оценки максимального правдоподобия, как мы обсуждали выше. Это значение оптимизировано для нахождения наилучшего соответствия модели.
  3. P›|z| - p-значение для проверки нулевой гипотезы с заданной независимой переменной
  4. Coef –коэффициенты модели для уравнения

Пришло время попытаться ответить на следующие вопросы интервью -

  1. Чем логистическая регрессия отличается от линейной регрессии
  2. Что такое MLE (оценка максимального правдоподобия)
  3. Что такое шансы и логарифмические шансы в модели логистической регрессии
  4. Как рассчитывается R-квадрат в модели логистической регрессии