Логистическая регрессия
Логистическая регрессия (англ. logistic regression) — метод построения линейного классификатора[на 23.01.19 не создан], позволяющий оценивать апостериорные вероятности принадлежности объектов классам.
Содержание
[убрать]Описание
Логистическая регрессия применяется для прогнозирования вероятности возникновения некоторого события по значениям множества признаков. Для этого вводится зависимая переменная y, принимающая значения 0 и 1 и множество независимых переменных на основе значений которых требуется вычислить вероятность принятия того или иного значения зависимой переменной.
Итак, пусть объекты задаются n числовымы признаками fj:X→R,j=1...n и пространство признаковых описаний в таком случае X=Rn. Пусть Y − конечное множество меток классов и задана обучающая выборка пар «объект-ответ»
Рассмотрим случай двух классов: Y={−1,+1}. В логистической регрессии строится линейный алгоритм классификации a:X→Y вида
где wj − вес j-го признака, w0 − порог принятия решения, w=(w0,...,wn) − вектор весов, ⟨x,w⟩ − скалярное произведение признакового описания объекта на вектор весов. Предполагается, что искусственно введён нулевой признак: f0(x)=−1.
Задача обучения линейного классификатора заключается в том, чтобы по выборке Xm настроить вектор весов w. В логистической регрессии для этого решается задача минимизации эмпирического риска с функцией потерь специального вида:После того, как решение w найдено, становится возможным не только вычислять классификацию a(x)=sign⟨x,w⟩ для произвольного объекта x, но и оценивать апостериорные вероятности его принадлежности классам:
где σ(z)=11+e−z — сигмоидная функция.
Обоснование
С точки зрения байесовского классификатора
Наиболее строгое обоснование логистической регрессии опирается на следующую теорему
Теорема: |
Пусть
Тогда
|
Доказательство: |
Рассмотрим отношение апостериорных вероятностей классов и воспользуемся тем, что py(x) — экспонентные плотности с параметрами θy и δ: где P+ − априорные вероятности, p+(x) − функции правдоподобия w=c+(δ)θ+−c−(δ)θ−=const(x) Здесь вектор w не зависит от x и является вектором свободных коэффициентов при признаках. Все слагаемые под экспонентой, не зависящие от x, можно считать аддитивной добавкой к коэффициенту при константном признаке. Поскольку свободные коэффициенты настраиваются по обучающей выборке, вычислять эту аддитивную добавку нет никакого смысла, и её можно включить в ⟨w,x⟩. Следовательно, Используя формулу полной вероятности выразим апостериорные вероятности Объединяя эти два равенства в одно, получаем требуемое: Разделяющая поверхность в байесовском решающем правиле определяется уравнением которое равносильно |
Пример кода для scikit-learn
Классификатор sklearn.linear_model.LogisticRegression имеет несколько параметров, например:
- solver − алгоритм, использующийся для оптимизации
- multi_class − классификация на 2 или много классов
- Импортируем нужные библиотеки
from sklearn.linear_model import LogisticRegression from sklearn import datasets from sklearn.model_selection import train_test_split
- Выберем тренировочное и тестовое множества
iris = datasets.load_iris() X = iris.data y = iris.target X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
- Обучение
clf = LogisticRegression(random_state=0, solver='lbfgs', multi_class='multinomial') model = clf.fit(X_train, y_train)
- Предсказание
y_pred = model.predict(X_test) model.score(X_test, y_test)
См. также
- Байесовская классификация
- Линейная регрессия
- Вариации регрессии
- Обзор библиотек для машинного обучения на Python
- Общие понятия
- Уменьшение размерности