Логистическая регрессия (примечания по машинному обучению)

машинное обучение

Что такое логистическая регрессия? Как это связано с линейной регрессией?

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

Логистическая регрессия и линейная регрессия являются обобщенными линейными моделями. Логистическая регрессия предполагает, что зависимая переменная y следует распределению Бернулли, а линейная регрессия предполагает, что зависимая переменная y следует распределению Гаусса. Следовательно, есть много общего с линейной регрессией.Если сигмовидная функция отображения удалена, алгоритм логистической регрессии представляет собой линейную регрессию. Можно сказать, что логистическая регрессия теоретически поддерживается линейной регрессией, но логистическая регрессия вводит нелинейные факторы через сигмовидную функцию, поэтому она может легко справляться с проблемами классификации 0/1.

Распределение Бернулли:This.Wikipedia.org/wiki/%E4%BC…

Гауссово распределение:This.Wikipedia.org/wiki/%E6%AD…

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

Предположим, имеется следующий набор данных, представляющий вероятность наличия у пациента рака при различных размерах опухоли.y:

pic1.png

Предположениеh_{\theta}(x) = y, из приведенного выше рисунка мы можем примерно предсказать:

if \ h_{\theta}(x) > 0.5 \quad y = 1 \\ if \ h_{\theta}(x) < 0.5 \quad y = 0

Приведенные выше данные согласуются с линейным уравнением, но еслиy = 1Выборка данных отображается в нестабильном положении, что может привести к сбою всей линейной регрессии:

pic2.png

Для такого рода задач нам нужно наше уравнение регрессии:

0 <= h_{\theta}(x) <= 1

и:

P(y=0 | x, \theta) + P(y=1 | x, \theta) = 1

Sigmoid Fuction (Logisitic Function)Он вполне может удовлетворить вышеуказанные требования, и его функциональное выражение:

g(z) = \frac{1}{1 + e^{-z}}

Его функциональное изображение:

pic3.png

Таким образом, для вышеуказанной проблемы с опухолью можно предположить, что:

h_{\theta}(x) = g(\theta^{T}x)

z = \theta^{T}x

g(z) = \frac{1}{1 + e^{-z}}

который:

h_{\theta}(x) = \frac{1}{1 + e^{-\theta^{T}x}}

так\theta^{T}xКакое значение можно использовать, чтобы правильно вернуться к вышеуказанному肿瘤大小与患癌症概率Что насчет набора данных?

граница решения

в конкретном\theta^{T}Перед этим давайте разбиратьсяграница решенияконцепции, в качестве примера возьмем следующие данные:

pic4.png

Предположение\theta_{0} = -3,\theta_{1} = 1,\theta_{2} = 1, модель данных слева может быть правильно регрессирована, тогда:

если
-3 + x_{1} + x_{2} >= 0

Такg(z) = \frac{1}{1 + e^{-z}} > 0.5, то в это времяy = 1

pic5.png

-3 + x_{1} + x_{2} >= 0является границей решения, то есть, приняв ее за границу, мы можем знать, что в\theta^{T}Если это определено, когда набор данныхh_{\theta}(x) = 1,Когдаh_{\theta}(x) = 0

Граница решения — это граница, используемая для проведения четкой границы.Форма границы может быть неопределенной, это может быть точка, линия или плоскость. Границей решения является функция предсказанияh_{\theta}(x)свойства, а не свойства обучающего набора.

решать задачи логистической регрессии\theta^{T}

Уравнение логистической регрессии, которое мы нашли:

h_{\theta}(x) = \frac{1}{1 + e^{-\theta^{T}x}}

как решить\theta^{T}Шерстяная ткань? Просмотрите функцию стоимости линейной регрессииJ_{\theta}:

J_{\theta} = \frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{i}) - y^{i})^{2}

Его также можно выразить в следующем виде, но для логистической регрессииh_{\theta}(x) = \frac{1}{1 + e^{-\theta^{T}x}}

Cost(h_{\theta}(x), y) = \frac{1}{2m}(h_{\theta}(x) - y)^{2}

Однако график его функции стоимости представляет собой вогнутую волнистую форму, такая волнистая кривая стоимости заставит нас запутаться при градиентном спуске, любое минимальное значение можно принять за минимальное значение, но получить максимальное значение невозможно. точность предсказания. Но на кривой затрат справа, как на слайде, мы легко можем достичь минимума:

pic6.png

Следовательно, функция стоимости логистической регрессии не может просто применить модель линейной регрессии.Для логистической регрессии ее функция стоимости:

Cost(h_{\theta}(x), y) = \begin{cases} -\log(h_{\theta}(x))& if & y = 1\\ -\log(1 - h_{\theta}(x))& if& y = 0 \end{cases}

если у = 1,Cost(h_{\theta}(x), y)Подобное выглядит следующим образом:

pic7.png

Вышеh_{\theta}(x) = 1, Стоимость = 0, тогда лучший\theta^{T}, но когдаh_{\theta}(x)При приближении к 0 Cost стремится к бесконечности. То есть предсказание в это время весьма необоснованно, в данном случае:

P(y=1 | x, \theta) = 0

Если y = 0, график функции стоимости выглядит следующим образом:

pic8.png

На самом деле вышеизложенноеCost(h_{\theta}(x), y)Его можно упростить до следующего вида:

Cost(h_{\theta}(x), y) = -y\log(h_{\theta}(x)) - (1-y)\log(1 - h_{\theta}(x))

Этот способ написания через статистическиймаксимальная вероятностьПолученный :zhuanlan.zhihu.com/p/26614750

Таким образом, функция стоимости логистической регрессии:

J(\theta) = -\frac{1}{m}\sum_{i=1}^{m}[ y\log(h_{\theta}(x)) +(1-y)\log(1 - h_{\theta}(x))]

Ее можно решить с помощью алгоритма градиентного спуска.minJ(\theta):

\theta_{j} := \theta_{j} - \alpha\sum_{i=1}^{m}(h_{\theta}(x^{(i)} - y^{(i)})x_{j}^{(i)}

Приведенная выше формула для градиентного спуска на самом деле похожа на линейную регрессию, но разница заключается в следующем:

h_{\theta}(x) = \frac{1}{1 + e^{-\theta^{T}x}}

Мы можем написать код, чтобы выяснить это с помощью градиентного спуска.minJ(\theta), но помимо градиентного спуска есть еще несколько более продвинутых алгоритмов, способных решатьminJ(\theta):

pic9.png

Нам не нужно реализовывать вышеуказанные алгоритмы самостоятельно, мы можем вызвать некоторые существующие библиотеки:

pic10.png

fminuncМинимальное значение функции при неограниченных условиях можно найти, а указанную выше функцию можно найти, запустив указанную выше функцию на октаве:

optTheta = \begin{bmatrix} 5 \\ 5 \end{bmatrix} \\ funtionVal = 0 \\ exitFlag = 1

exitFlag=1 означает, что алгоритм сошелся.

Для логистической регрессии нам просто нужно заменить приведенный выше алгоритм на:

jVal = J_{(\theta)} \\ gradient = \begin{bmatrix} \frac{\partial}{\partial\theta_{1}}J_{(\theta)}\\ \frac{\partial}{\partial\theta_{2}}J_{(\theta)}\\ ... \end{bmatrix}

Классификация «один ко многим»

Что такое задача классификации «один ко многим» (мультиклассификация)?

Например, вы помещаете электронное письмо в разные папки, такие как работа, друзья, хобби и т. д.

Проблемы с множественной классификацией можно решить, преобразовав один ко многим в один к одному:

pic11.png

То есть есть несколько категорий, которые нам нужны для обучения нескольких классификаторов логистической регрессии, На приведенном выше рисунке необходимо реализовать классификаторы 3, которые удовлетворяют:

h_{\theta}^{(i)} = P(y = i|x;\theta) \quad (i=1,2,3)

Но если вы введетеx, то какой классификатор выбрать?

Нам нужно только выбрать тот, у которого наибольший результат расчета

pic12.png

Справочная статья:

zhuanlan.zhihu.com/p/28408516