Я написал эту статью для лучшего понимания логистической регрессии.
Определение
- Она похожа на знакомую нам бинарную классификацию.
- Он предсказывает категориальные зависимые переменные, обычно бинарные. Зависимые переменные также могут быть полиномиальными. Sklearn подробно описывает полиномиальную логистическую регрессию.
Предположения
- Наблюдения независимы (проверьте с остаточным графиком)
- Существует отсутствие мультиколлинеарности среди объяснительных (проверьте с коэффициентом инфляции дисперсии переменных VIF)
- Экстремальных выбросов не бывает
- p(x) = exp(b0+b1*x)/(1+exp(b0+b1*x)). Логит = лог(p/(1-p))=b0+b1*x
Ссылка: https://www.statology.org/asposed-of-logistic-regression/
Два этапа
- Используйте логистическую функцию (сигмовидную) g(z) = 1/(1+exp(-z)) для вычисления вероятности (0~1), z=b0+b1*x.
- Предсказать класс тестового образца на основе порога.
Оценка максимального правдоподобия
Зачем регистрировать вероятность?
Если использовать MSE наподобие линейной регрессии, функция потерь не будет выпуклой и найти глобальный минимум будет сложно (из-за нелинейности, введенной в модель в виде сигмовидной функции). Итак, здесь мы используем логарифмическую вероятность в качестве функции потерь, потому что она будет выпуклой.
Ссылка:
Используйте MLE, чтобы соответствовать модели:
- Бета, x, y → функция правдоподобия
- Оценить бета, чтобы максимизировать вероятность
- Можно использовать градиентный спуск для обновления бета-версий и использовать мини-пакет для повышения эффективности. Мини-пакет может привести к плохим градиентам, если данные зашумлены, но мы все равно можем их оптимизировать.
Почему логистика вместо линейной регрессии?
- Логистическая регрессия может предсказать категориальный Ys.
- Линейная регрессия:
- Трудно подобрать данные, особенно с выбросами.
- Прогнозы линейной регрессии имеют смысл порядка и подразумевают, что различия между разными категориями одинаковы. Но на самом деле разница не должна быть одинаковой.
- Линейная регрессия может генерировать вероятность> 1 или ‹0.
Другие примечания:
- Логистическая регрессия также является линейной, поскольку имеет линейную границу решения.
p(x) = exp(b0+b1*x)/(1+exp(b0+b1*x)). Логит = log(p/(1-p))=b0+b1*x
если у нас p(x)=exp(1+x) и порог=0,5, то exp(1+x)=0,5. Граница линейная.
- Для линейных разделимых данных логистическая регрессия может генерировать вероятность, очень близкую к 1/0, и она не остановится, если вы не установите итерации при использовании пакетов Sklearn.
Реальные вопросы интервью:
- Является ли логистическая регрессия линейной?
- Каковы предположения логистической регрессии?
- Будет ли мультиколлинеарность проблемой, если вы используете логистическую регрессию?
Пожалуйста, дайте мне знать, если возникнут какие-либо вопросы или проблемы! 😆:)
Реализуйте логистическую регрессию с нуля:
Я реализовал 2 версии с/без Numpy :)
Использованная литература:
- Машинное обучение для науки о данных (DSCI552 в USC), М. Р. Раджати, доктор философии
- AssemblyAI и Emma Ding — полезные ресурсы!