Машинное обучение Ng Enda-3-логистическая регрессия и проблема регуляризации
Основное содержание третьей недели включает:
- логистическая регрессия
- функция стоимости
- Сравнение линейной регрессии и логистической регрессии
- проблема регуляризации
логистическая регрессия
проблема классификации
Гипотетическая прогнозируемая переменнаяy
являются дискретными значениями и должны использовать логистическую регрессиюLogistic Regression,LR
алгоритм,На самом деле это алгоритм классификации
проблема бинарной классификации
зависимая переменнаяdependent variable
Два класса, которые могут принадлежать, называются отрицательными классамиnegative class
и вперед классpositive class
, значение зависимой переменной y может быть только в0
и1
между, из которых0 означает отрицательный класс, 1 означает положительный класс
Гипотеза Представление
Выходное значение классификатора0
и1
, поэтому желательно найти гипотетическую функцию, удовлетворяющую некоторому свойству, котороеЕго прогнозируемое значение должно быть между 0 и 1
Представьте новую модель:逻辑回归
, модельДиапазон выходной переменной всегда находится между 0 и 1.. Предположения модели логистической регрессии:вX
представляет вектор признаковg
Логическая функция , обычно используемаяS
тип функции (правая часть рисунка выше,sigmoid function
) формулаРеализация кода Pythonsigmod
функция активации:
import numpy as np
def sigmod(z):
return 1 / (1 + np.exp(-z))
Функция заключается в вычислении вероятности выходной переменной = 1 по выбранным параметрам для заданной входной переменной, а именно:
Например: для заданного x, рассчитанного на основе определенных параметров, это означает, что с вероятностью 70% y принадлежит к положительному классу
граница решения
Интерпретация логистической регрессии
- в логистической регрессиипредсказывать, иначе у=0
- в функции активациисередина:
когдано
когдано
Также из-за, потом, когдакогда есть;Напротив
Также из-за,который:при предсказании;Напротив:при предсказании
пример демо
В примере на рисунке ниже параметрудовлетворить[-3,1,1]
,когда,СейчасКогда , модель предсказывает y=1, указывая, что на этот раз: прямая линияграница решения
Краевые задачи сложной модели
Функция стоимости
Как подобрать параметры модели LR
1. Линейная модельФункция стоимости - это ошибка моделисумма квадратов:
Если вы напрямую используете функцию стоимости в линейной модели, то есть сумму квадратов ошибок, результирующая функция стоимости будет **"невыпуклой функцией"**, но на самом деле мы ожидаем увидеть выпуклую функцию (справа )
-
Переопределение функции стоимости логистической регрессии
Объедините два приведенных выше уравнения:
- иОтношения между
По разным значениям у суд производится отдельно, при этом следует отметить, что значение функции h предполагается лежащим только между [0, 1].
Случай y=1
Случай y=0
Код Python реализует функцию стоимости
использоватьPython
Реализуйте следующую функцию стоимости
-
first
означает первый элемент справа -
second
Указывает на второй элемент справа
import numpy as np
def cost(theta, X, y):
# 实现代价函数
theta=np.matrix(theta)
X = np.matrix(X)
y = np.matrxi(y)
first = np.multiply(-y, np.log(sigmod(X * theta.T)))
second = np.multiply((1 - y), np.log(1-sigmod(X * theta.T)))
return np.sum(first - second) / (len(X))
Использование градиентного спуска для решения минимальных параметров LR
1. Функция стоимости в LR
2. Окончательный результат
3. Конкретный процесс
Итеративно обновляется
Если есть n признаков, то есть. Тогда по приведенной выше формуле изобновить все
Линейная регрессия против логистической регрессии
- Изменение правил гипотетического определения
Линейная регрессия:
Логистическая регрессия:
Таким образом, несмотря на то, что правила обновления параметров выглядят в основном одинаково, поскольку определение предположений изменилось, градиентный спуск для логистических функций и градиентный спуск для линейной регрессии на самом деле являются двумя совершенно разными вещами.
Другие алгоритмы решения функции минимальной стоимости
- Сопряженный градиент
conjugate gradient
- локальная оптимизация
Broyden fletcher goldfarb shann,BFGS
- Метод локальной оптимизации с ограниченной памятью
LBFGS
Мультиклассовая классификация «один против всех»
Давайте возьмем практический пример, чтобы проиллюстрировать:
Если вам теперь нужен алгоритм обучения, который может автоматически классифицировать электронные письма по разным папкам или может автоматически добавлять метки, то для этого вам понадобятся несколько разных папок или разных меток, чтобы отличать электронные письма от работы, друзей, семьи или об увлечениях, а затем , есть такая проблема с классификацией: есть 4 категории, соответственно используяпредставлять.
](
Проблема регуляризации
Основы регуляризации
Методы регуляризации в основном предназначены для решения проблемы переобучения.Переоснащение относится к: У него хорошая способность оценивать выборочные данные, но плохая способность прогнозирования для новых данных.
- Первая модель — это линейная модель, которая недостаточно приспособлена и плохо подходит для нашего тренировочного набора.
- Третья модель представляет собой квадратичную модель, в которой слишком много внимания уделяется подбору исходных данных, в то время какСуть алгоритма теряется: предсказание новых данных
- Модель посередине кажется наиболее подходящей.
Если это полиномиальная подгонка,x
Чем больше число раз, тем лучше эффект подгонки, но соответствующая способность предсказания может быть хуже.Работа с переоснащением:
- Отбросить некоторые функции, которые нельзя правильно предсказать. Это может быть ручной выбор того, какие функции сохранить, или использовать какой-либо алгоритм выбора модели, например.PCA
-
Регуляризация. Сохранить все функции, но уменьшить размер параметра
magnitude
*
Добавить параметр регуляризации
в моделив основномПроблемы переобучения, вызванные терминами высокого порядка:
Добавление параметров регуляризации может предотвратить проблемы переобучения.,впараметр регуляризацииRegularization Parameter
Тогда соответствующая функция затрат принимает вид:
Attention:
- Как правило, нетнаказывать; добавление параметра регуляризации на самом деленаказывать. Сравнение между регуляризованной моделью и исходной моделью:
- еслислишком велик, все параметры минимизируются, и модель становится, что приводит к переоснащению
Регулярная линейная регрессия
Функция стоимости для регуляризованной линейной регрессии:
Attention: в линейной регрессии неправильноУпорядочить:
когдаВремя:
приспособлен, чтобы стать:
Регулярная логистическая регрессия
LR
Существует два метода оптимизации задачи:
- Градиентный спуск
- Более продвинутые алгоритмы оптимизации
Функция стоимости после добавления обычного штрафного члена:
реализация кода на питоне
import numpy as np
# 实现代价函数
def costReg(theta, X, y, lr):
theta= np.matrix(theta)
X = np.matrix(X)
y = np.matrix(y)
first = np.multiply(-y, np.log(sigmoid(X * theta.T)))
second = np.multiply((1 - y), np.log(1 - sigmoid(X * theta.T)))
reg = (lr / (2 * len(X)) * np.sum(np.power(theta[:, 1:theta.shape[1]], 2)) # theta[:, 1:theta.shape[1]] 代表的是 \theta_j
return np.sum(first - second) / len((X)) + reg
По выводу получаемАлгоритм градиентного спуска, что в принципе верноПостоянные обновления: