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

Что такое логистическая регрессия?

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

Пример проблемы, которую можно решить с помощью логистической регрессии:

Какова вероятность того, что кого-то примут? (Регрессия) → Учитывая средний балл, будет ли студент принят на конкретную программу магистратуры? (Классификация)

код вместе

Для целей этого поста я буду использовать только код, а не вывод каждой строки кода.

Импорт библиотек

import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

Предположим, мы просмотрели данные и выполнили всю очистку и EDA. Теперь мы готовы к предварительной обработке!

y = admit[‘admit’]
X = admit[[‘gpa’]] 
## Double brackets are used to get a matrix so that we can feed it into the model.
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state = 42)

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

Теперь мы можем создать и подогнать нашу логистическую регрессию:

logreg = LogisticRegression(C = 1e9)
logreg.fit(X_train,y_train)

C = 1e9 — параметр обратной регуляризации. Чтобы лучше понять регуляризацию, ознакомьтесь с:

https://charleshsliao.wordpress.com/2017/05/20/logistic-regression-in-python-to-tune-parameter-c/

Получите прогнозы от модели:

logreg.predict(X_test)

Получите предсказанные вероятности от модели:

logreg.predict_proba(X_test)

(`.predict_proba` возвращает вероятности каждого результата, а не присваивает значение.)

Проверьте, как ваша модель работала с .score():

logreg.score(X_test,y_test)

Еще одна замечательная особенность логистической регрессии — возможность извлекать коэффициенты признаков:

logreg.coef_

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

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