Логистическая регрессия является одним из статистических методов классификации с использованием линейного дискриминанта Фишера. Также она входит в топ часто используемых алгоритмов в науке о данных. В этой статье суть логистической регрессии описана так, что она станет понятна даже людям не очень близким к статистике.
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/799/3fc/bb7/7993fcbb7bf63b49f19f9c23a149387d.jpg)
В отличие от обычной регрессии, в методе логистической регрессии не производится предсказание значения числовой переменной исходя из выборки исходных значений. Вместо этого, значением функции является вероятность того, что данное исходное значение принадлежит к определенному классу. Для простоты, давайте предположим, что у нас есть только два класса (см. Множественная логистическая регрессия для задач с большим количеством классов) и вероятность, которую мы будем определять,
вероятности того, что некоторое значение принадлежит классу "+". И конечно
. Таким образом, результат логистической регрессии всегда находится в интервале [0, 1].
Основная идея логистической регрессии заключается в том, что пространство исходных значений может быть разделено линейной границей (т.е. прямой) на две соответствующих классам области. Итак, что же имеется ввиду под линейной границей? В случае двух измерений — это просто прямая линия без изгибов. В случае трех — плоскость, и так далее. Эта граница задается в зависимости от имеющихся исходных данных и обучающего алгоритма. Чтобы все работало, точки исходных данных должны разделяться линейной границей на две вышеупомянутых области. Если точки исходных данных удовлетворяют этому требованию, то их можно назвать линейно разделяемыми. Посмотрите на изображение.
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/555/369/344/5553693449d97a6ccb730f4760a2eacd.png)
Указанная разделяющая плоскость называется линейным дискриминантом, так как она является линейной с точки зрения своей функции, и позволяет модели производить разделение, дискриминацию точек на различные классы.
Но каким образом используется линейная граница в методе логистической регрессии для количественной оценки вероятности принадлежности точек данных к определенному классу?
Во-первых, давайте попробуем понять геометрический подтекст «разделения» исходного пространства на две области. Возьмем для простоты (в отличие от показанного выше 3-мерного графика) две исходные переменные -
и
, тогда функция, соответствующая границе, примет вид:
![image](https://habrastorage.org/getpro/habr/post_images/49e/b0c/b1a/49eb0cb1ad4475dd88f06553c1fd12ba.gif)
Рассмотрим точку
. Подставляя значения
и
в граничную функцию, получим результат
. Теперь, в зависимости от положения
следует рассмотреть три варианта:
Итак, мы имеем функцию, с помощью которой возможно получить значение в пределах (-
,
) имея точку исходных данных. Но каким образом преобразовать полученное значение в вероятность
, пределы которой [0, 1]? Ответ — с помощью функции отношения шансов (OR).
Обозначим
вероятностью происходящего события
. Тогда, отношение шансов (
) определяется из
, а это — отношение вероятностей того, произойдет ли событие или не произойдет. Очевидно, что вероятность и отношение шансов содержат одинаковую информацию. Но, в то время как
находится в пределах от 0 до 1,
находится в пределах от 0 до
.
Это значит, что необходимо еще одно действие, так как используемая нами граничная функция выдает значения от -
до
. Далее следует вычислить логарифм
, что называется логарифмом отношения шансов. В математическом смысле,
имеет пределы от 0 до
, а
— от -
до
.
Таким образом, мы получили способ интерпретации результатов, подставленных в граничную функцию исходных значений. В используемой нами модели граничная функция определяет логарифм отношения шансов класса "+". В сущности, в нашем двухмерном примере, при наличии точки
, алгоритм логистической регрессии будет выглядеть следующим образом:
![image](https://habrastorage.org/getpro/habr/post_images/965/718/f55/965718f558b30b344309d6ecbb410194.gif)
Получив значение
в шаге 1, можно объединить шаги 2 и 3:
![image](https://habrastorage.org/getpro/habr/post_images/dff/b63/691/dffb636911f5554d9a34c2c44772d98c.gif)
Правая часть уравнения, указанного выше, называется логистической функцией. Отсюда и название, данное этой модели обучения.
Остался не отвеченным вопрос: «Каким образом обучается граничная функция
?» Математическая основа этого выходит за рамки статьи, но общая идея заключается в следующем:
Рассмотрим функцию
, где
— точка данных обучающей выборки. В простой форме
можно описать так:
Функция
проводит количественную оценку вероятности того, что точка обучающей выборки классифицируется моделью правильным образом. Поэтому, среднее значение для всей обучающей выборки показывает вероятность того, что случайная точка данных будет корректно классифицирована системой, независимо от возможного класса.
Скажем проще — механизм обучения логистической регрессии старается максимизировать среднее значение
. А название этого метода — метод максимального правдоподобия. Если вы не математик, то вы сможете понять каким образом происходит оптимизация, только если у вас есть хорошее представление о том, что именно оптимизируется.
![image](https://habrastorage.org/getpro/habr/post_images/799/3fc/bb7/7993fcbb7bf63b49f19f9c23a149387d.jpg)
Основная идея логистической регрессии
В отличие от обычной регрессии, в методе логистической регрессии не производится предсказание значения числовой переменной исходя из выборки исходных значений. Вместо этого, значением функции является вероятность того, что данное исходное значение принадлежит к определенному классу. Для простоты, давайте предположим, что у нас есть только два класса (см. Множественная логистическая регрессия для задач с большим количеством классов) и вероятность, которую мы будем определять,
![image](https://habrastorage.org/getpro/habr/post_images/cdc/f5b/f70/cdcf5bf7047b62c14f3a156a53e2dd74.gif)
![image](https://habrastorage.org/getpro/habr/post_images/045/804/86e/04580486eee1e497931541ce04dc5a9b.gif)
Основная идея логистической регрессии заключается в том, что пространство исходных значений может быть разделено линейной границей (т.е. прямой) на две соответствующих классам области. Итак, что же имеется ввиду под линейной границей? В случае двух измерений — это просто прямая линия без изгибов. В случае трех — плоскость, и так далее. Эта граница задается в зависимости от имеющихся исходных данных и обучающего алгоритма. Чтобы все работало, точки исходных данных должны разделяться линейной границей на две вышеупомянутых области. Если точки исходных данных удовлетворяют этому требованию, то их можно назвать линейно разделяемыми. Посмотрите на изображение.
![image](https://habrastorage.org/getpro/habr/post_images/555/369/344/5553693449d97a6ccb730f4760a2eacd.png)
Указанная разделяющая плоскость называется линейным дискриминантом, так как она является линейной с точки зрения своей функции, и позволяет модели производить разделение, дискриминацию точек на различные классы.
Если невозможно произвести линейное разделение точек в исходном пространстве, стоит попробовать преобразовать векторы признаков в пространство с большим количеством измерений, добавив дополнительные эффекты взаимодействия, члены более высокой степени и т.д. Использование линейного алгоритма в таком пространстве дает определенные преимущества для обучения нелинейной функции, поскольку граница становится нелинейной при возврате в исходное пространство.
Но каким образом используется линейная граница в методе логистической регрессии для количественной оценки вероятности принадлежности точек данных к определенному классу?
Как происходит разделение
Во-первых, давайте попробуем понять геометрический подтекст «разделения» исходного пространства на две области. Возьмем для простоты (в отличие от показанного выше 3-мерного графика) две исходные переменные -
![image](https://habrastorage.org/getpro/habr/post_images/cb1/a48/d7d/cb1a48d7d4bbb8901c3fa0e14ceb633a.gif)
![image](https://habrastorage.org/getpro/habr/post_images/960/962/d3c/960962d3cf52bcffefe1c092f955bd61.gif)
![image](https://habrastorage.org/getpro/habr/post_images/49e/b0c/b1a/49eb0cb1ad4475dd88f06553c1fd12ba.gif)
Важно отметить, что ии
являются исходными переменными, а выходная переменная не является частью исходного пространства в отличие от метода линейной регрессии.
Рассмотрим точку
![image](https://habrastorage.org/getpro/habr/post_images/a30/c86/1cb/a30c861cb917356a639023be77b86201.gif)
![image](https://habrastorage.org/getpro/habr/post_images/cb1/a48/d7d/cb1a48d7d4bbb8901c3fa0e14ceb633a.gif)
![image](https://habrastorage.org/getpro/habr/post_images/960/962/d3c/960962d3cf52bcffefe1c092f955bd61.gif)
![image](https://habrastorage.org/getpro/habr/post_images/34d/bf1/52a/34dbf152a05035c3d68b29ad9d1ae268.gif)
![image](https://habrastorage.org/getpro/habr/post_images/a30/c86/1cb/a30c861cb917356a639023be77b86201.gif)
лежит в области, ограниченной точками класса "+". Тогда
, будет положительной, находясь где-то в пределах (0,
). С математической точки зрения, чем больше величина этого значения, тем больше расстояние между точкой и границей. А это означает большую вероятность того, что
принадлежит классу "+". Следовательно,
будет находиться в пределах (0,5, 1].
лежит в области, ограниченной точками класса "-". Теперь,
будет отрицательной, находясь в пределах (-
, 0). Но, как и в случае с положительным значением, чем больше величина выходного значения по модулю, тем больше вероятность, что
принадлежит классу "-", и
находится в интервале [0, 0.5).
лежит на самой границе. В этом случае,
. Это означает, что модель действительно не может определить, принадлежит ли
к классу "+" или к классу "-". И в результате,
будет равняться 0,5.
Итак, мы имеем функцию, с помощью которой возможно получить значение в пределах (-
![image](https://habrastorage.org/getpro/habr/post_images/f9b/488/05b/f9b48805bbe1ace8b051092fa9868ee9.gif)
![image](https://habrastorage.org/getpro/habr/post_images/f9b/488/05b/f9b48805bbe1ace8b051092fa9868ee9.gif)
![image](https://habrastorage.org/getpro/habr/post_images/cdc/f5b/f70/cdcf5bf7047b62c14f3a156a53e2dd74.gif)
Обозначим
![image](https://habrastorage.org/getpro/habr/post_images/7ef/759/b93/7ef759b9360f5df31e88f2f86bea5ad8.gif)
![image](https://habrastorage.org/getpro/habr/post_images/dfa/333/423/dfa33342339f0dbbe9636fd4c2371cfd.gif)
![image](https://habrastorage.org/getpro/habr/post_images/3b6/d9b/8df/3b6d9b8df6998745e5d3e740a2198b47.gif)
![image](https://habrastorage.org/getpro/habr/post_images/275/13e/86e/27513e86e193d6fd8d32558b0fdb3c54.gif)
![image](https://habrastorage.org/getpro/habr/post_images/7ef/759/b93/7ef759b9360f5df31e88f2f86bea5ad8.gif)
![image](https://habrastorage.org/getpro/habr/post_images/3b6/d9b/8df/3b6d9b8df6998745e5d3e740a2198b47.gif)
![image](https://habrastorage.org/getpro/habr/post_images/f9b/488/05b/f9b48805bbe1ace8b051092fa9868ee9.gif)
Это значит, что необходимо еще одно действие, так как используемая нами граничная функция выдает значения от -
![image](https://habrastorage.org/getpro/habr/post_images/f9b/488/05b/f9b48805bbe1ace8b051092fa9868ee9.gif)
![image](https://habrastorage.org/getpro/habr/post_images/f9b/488/05b/f9b48805bbe1ace8b051092fa9868ee9.gif)
![image](https://habrastorage.org/getpro/habr/post_images/3b6/d9b/8df/3b6d9b8df6998745e5d3e740a2198b47.gif)
![image](https://habrastorage.org/getpro/habr/post_images/3b6/d9b/8df/3b6d9b8df6998745e5d3e740a2198b47.gif)
![image](https://habrastorage.org/getpro/habr/post_images/f9b/488/05b/f9b48805bbe1ace8b051092fa9868ee9.gif)
![image](https://habrastorage.org/getpro/habr/post_images/16c/14d/df7/16c14ddf7530009e41a6ffc3117d6652.gif)
![image](https://habrastorage.org/getpro/habr/post_images/f9b/488/05b/f9b48805bbe1ace8b051092fa9868ee9.gif)
![image](https://habrastorage.org/getpro/habr/post_images/f9b/488/05b/f9b48805bbe1ace8b051092fa9868ee9.gif)
Таким образом, мы получили способ интерпретации результатов, подставленных в граничную функцию исходных значений. В используемой нами модели граничная функция определяет логарифм отношения шансов класса "+". В сущности, в нашем двухмерном примере, при наличии точки
![image](https://habrastorage.org/getpro/habr/post_images/a30/c86/1cb/a30c861cb917356a639023be77b86201.gif)
- Шаг 1. Вычислить значение
граничной функции (или, как вариант, функцию отношения шансов). Для простоты обозначим эту величину
.
- Шаг 2. Вычислить отношение шансов:
. (так как
является логарифмом ).
- Шаг 3. Имея значение
, вычислить
с помощью простой зависимости.
![image](https://habrastorage.org/getpro/habr/post_images/965/718/f55/965718f558b30b344309d6ecbb410194.gif)
Получив значение
![image](https://habrastorage.org/getpro/habr/post_images/924/99b/ee0/92499bee0f9e041279812f5b9e5ec0f4.gif)
![image](https://habrastorage.org/getpro/habr/post_images/dff/b63/691/dffb636911f5554d9a34c2c44772d98c.gif)
Правая часть уравнения, указанного выше, называется логистической функцией. Отсюда и название, данное этой модели обучения.
Как обучается функция
Остался не отвеченным вопрос: «Каким образом обучается граничная функция
![image](https://habrastorage.org/getpro/habr/post_images/34d/bf1/52a/34dbf152a05035c3d68b29ad9d1ae268.gif)
Рассмотрим функцию
![image](https://habrastorage.org/getpro/habr/post_images/496/273/493/496273493a3ec1e63252f7e4d937dccf.gif)
![image](https://habrastorage.org/getpro/habr/post_images/690/3c3/e3d/6903c3e3de4388275a1ee43ac1a287d2.gif)
![image](https://habrastorage.org/getpro/habr/post_images/496/273/493/496273493a3ec1e63252f7e4d937dccf.gif)
еслиявляется частью класса "+",
(здесь
— выходное значение, полученное из модели логистической регрессии). Если
является частью класса "-",
.
Функция
![image](https://habrastorage.org/getpro/habr/post_images/496/273/493/496273493a3ec1e63252f7e4d937dccf.gif)
Скажем проще — механизм обучения логистической регрессии старается максимизировать среднее значение
![image](https://habrastorage.org/getpro/habr/post_images/496/273/493/496273493a3ec1e63252f7e4d937dccf.gif)
Конспект
- Логистическая регрессия — одно из статистических методов классификации с использованием линейного дискриминанта Фишера.
- Значением функции является вероятность того, что данное исходное значение принадлежит к определенному классу.
- механизм обучения логистической регрессии старается максимизировать среднее значение
.