Логистическая регрессия 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. Вы должны теперь сможете понять, что делает логистическая регрессия и для каких задач ее лучше всего использовать. Этот пост находится в стадии разработки, поэтому следите за обновлениями для получения дополнительной информации, так как я вернусь и дополню этот пост.