BMSTU/04-big-data-analysis-inform...

995 lines
78 KiB
TeX
Raw Normal View History

2023-02-13 13:59:23 +03:00
\documentclass{article}
\input{settings/common-preamble}
\input{settings/bmstu-preamble}
\input{settings/fancy-listings-preamble}
\author{Гребенюк Елена Алексеевна (lgrebenuk12@yandex.ru)}
2023-02-13 13:59:23 +03:00
\title{Технологии разработки информационных систем для анализа больших объёмов информации}
\date{2023-02-08}
\begin{document}
\maketitle
\tableofcontents
\newpage
\section{Введение}
2023-02-14 12:34:47 +03:00
\subsection{Что нужно знать}
\begin{itemize}
\item \textbf{Основы теории вероятностей и математической статистики} (случайные величины, непрерывные и дискретные случайные величины, матожидание, дисперсия, ковариация, корреляция)
\item выборка, статистика, гистограмма, смещение
\item несмещённая оценка, асимптотически несмещённая оценка, состоятельная оценка, дисперсия оценки, коэффициент корреляции Пирсона, коэффициент корреляции Спирмена, нормальное (гауссовское) распределение (одномерное и многомерное), центральная предельная
\item \textbf{основы линейной алгебры}
\begin{itemize}
\item Вектор, операции над векторами и их свойства, векторное пространство, аксиомы векторного пространства, размерность векторного пространства.
\item Линейная зависимость векторов, линейная независимость векторов, методы проверки линейной независимости векторов.
\item Матрица, операции над матрицами, умножение матрицы на вектор, умножение матрицы на матрицу, ранг матрицы, транспонирование матриц, обратная матрица.
\item Система линейных уравнений (СЛУ), число решений СЛУ, ранг матрицы СЛУ и число ее решений.
\item Евклидово пространство, его свойства, норма вектора, ее свойства, метрика, евклидова метрика, скалярное произведение векторов, угол между векторами.
\end{itemize}
\item \textbf{Теория информации} Информационная энтропия (Entropy) мера неопределённости некоторой системы
\item \textbf{Python} Библиотеки: Scikit-Learn, Numpy, Scipy, Pandas, Matplotlib, ...
\end{itemize}
2023-02-13 13:59:23 +03:00
2023-02-14 12:34:47 +03:00
\subsection{Типы задач анализа данных}
\begin{itemize}
\item Визуализация - анализ ситуации, анализ исходной информации, анализ, интерпретация и представление результатов
\item Поиск шаблонов поиск частых наборов - метод ассоциативных правил - market basket analysis
\item прогнозирование - определение нового класса или объекта, которого не было в обучающей выборке
\item кластеризация или сегментация
\end{itemize}
2023-02-13 13:59:23 +03:00
2023-02-14 12:34:47 +03:00
\textbf{Этапы решения задачи алгоритмами машинного обучения}
2023-02-13 13:59:23 +03:00
\begin{itemize}
\item формальная постановка задачи (кампания по привлечению кредитов, найти модель)
\item данные (признаковое описание -- бинарные, числовые, категориальные, порядковые; матрица расстояний между объектами, временные ряды скалярных или векторных наблюдений, итого 16 прпизнаков)
\item определение ответа (да/нет), но чаще всего нужен не бинарный ответ, а определение степени доверия ответу.
\item выбор критериев качества решения (метрики оценивания используемого метода решения должны иметь интерпретацию, значимую для решаемой бизнес-задачи)
\item выбор метода решения
\item предобработка данных (если клиентов приндалежащих какому-то классу меньше 5\% выборка не сбалансирована)
\item реализация, оценка качества
\end{itemize}
2023-02-14 12:34:47 +03:00
Пример -- Скоринг -- определение платёжеспособности.
2023-02-13 13:59:23 +03:00
\begin{enumerate}
2023-02-14 12:34:47 +03:00
\item \textbf{Постановка задачи}. Проводилась компания по привлечению клиентов для открытия депозита. Цель маркетинговой компании: привлечь клиентов на депозит, предлагая долгосрочные депозитные заявки с высокими процентными ставками, при сокращении затрат и времени на проведение компании: контактов должно быть меньше, но число клиентов, подписавшихся на депозит не должно уменьшаться. Цель исследования: найти модель, которая может объяснить успех компании т. е., если клиент подписывает депозит. Решается задача классификации: по имеющемуся признаковому описанию клиента определить подпишет ли он депозит (успех) и нет (неудача).
\item \textbf{Данные задачи}. \textbf{Типы входных данных}: признаковое описание, каждый объект описывается набором числовых или нечисловых признаков; матрица расстояний между объектами (метод ближайших соседей); временные ряды скалярных или векторных наблюдений (сигналы); изображение или видеоряд;
\textbf{Признаковое описание} Бинарные признаки $(0, 1)$; Числовые признаки: $x_{ik} \in R$ -- с этими признаками удобно работать, практически любой метод применим к задаче с числовыми признаками; Категориальные признаки $x_{ik} \in \{\alpha_1, ..., \alpha_k\}$ нет метрики, нет упорядочения; Порядковые признаки $x_{ik} \in \{\alpha_1, ..., \alpha_k\}$ есть упорядочение.
\textbf{Входные данные 16 признаков}
\textbf{Общие данные о клиенте}
1 - age (numeric);
2 - job : (categorical: "admin.", "unknown", "unemployed", "management", "housemaid", "entrepreneur", "student", "blue-collar", "self-employed", "retired", "technician", "services")
3 - marital (categorical: "married", "divorced", "single")
4 - education (categorical: "unknown","secondary","primary","tertiary")
\textbf{Финансовое положение}
5 - default: has credit in default? (binary: "yes","no")
6 - balance:, in euros (numeric)
7 - housing: has housing loan? (binary: "yes","no")
8 - loan: has personal loan? (binary: "yes","no")
\textbf{Данные о рекламной компании}
9 - contact: contact communication type (categorical: "unknown","telephone","cellular")
10 - day: last contact day of the month (numeric)
11 - month: last contact month of year (categorical: "jan", "feb", "mar", ..., "nov", "dec")
12 - duration: last contact duration, in seconds (numeric)
13 - campaign: number of contacts performed during this campaign (numerict)
14 - pdays: number of days that passed by after the client was last contacted (numeric)
15 - previous: number of contacts performed before this campaign and for this client (numeric)
16 - poutcome: outcome of the c (categorical: "unknown","other","failure","success")
17 - y - has the client subscribed a term deposit? (binary: "yes","no")
\item \textbf{Предварительная обработка и проверка качества исходных данных}
1. Какова доля объектов первого класса в данных? Если эта доля менее 5\% - имеем несбалансированную выборку.
2.Какова доля выбросов, пропусков в данных? Выбросы могут быть результатом: событий, которые происходят с небольшой вероятностью и большим воздействием, системной ошибки.
\item \textbf{Определение ответа} Варианты ответов: клиент подписывает контракт -- класс 1, клиент не подписывает -- класс 0;
вектор $\{p, 1-p\} = P, p$ --степень уверенности алгоритма (вероятность) в том, что объект принадлежит классу 1 .
\item Выбор критериев: метрики оценивания используемого метода решения должны иметь интерпретацию, значимую для решаемой бизнес-задачи.
2023-02-13 13:59:23 +03:00
\end{enumerate}
2023-02-14 12:34:47 +03:00
\subsection{Работа с несбалансированными выборками}
Метрики для несбалансированных наборов данных: AUC-ROC (площадь под ROC-кривой) , f1-score.
2023-02-13 13:59:23 +03:00
2023-02-14 12:34:47 +03:00
\begin{enumerate}
\item Удаление части элементов мажоритарного класса (недостаток: потеря данных).
\item Дополнение миноритарного класса повторяющимися данными (недостаток: переобучение на элементах миноритарного класса).
\item Создание дополнительных искусственных объектов.
\item Настройка классификатора с использованием весов. В контексте кредитования потеря денег из-за незаслуживающего доверия заемщика обходится существенно выше, чем отсутствие возможности кредитования надежного заемщика. Поэтому мы можем назначать этим классам различные веса и отсечки
\end{enumerate}
2023-02-13 13:59:23 +03:00
2023-02-14 12:34:47 +03:00
Метрики Качества. Пусть имеется два класса 1 -- положительный и 0 -- отрицательный
\begin{itemize}
\item True positive TP объекты, принадлежащие положительному классу $Y_1$, определены алгоритмом как положительные
\[ TP = \{ X_t \in Y_1 | a(X_t, g) = 1 \} \]
\item False positive FP объекты, принадлежащие отрицательному классу $Y_0$ ,определены алгоритмом как положительные
\[ FP = \{ X_t \in Y_0 | a(X_t, g) = 1 \} \]
\item False negative FN объекты, принадлежащие положительному классу $Y_1$ , определены алгоритмом как отрицательные
\[ FN = \{ X_t \in Y_1 | a(X_t, g) = 0 \} \]
\item True negative TN объекты, принадлежащие отрицательному классу $Y_0$ , определены алгоритмом как отрицательные
\[ TN = \{ X_t \in Y_0 | a(X_t, g) = 0 \} \]
\end{itemize}
2023-02-13 13:59:23 +03:00
2023-02-14 12:34:47 +03:00
\subsection{Метрики качества оценки алгоритмов машинного обучения}
\begin{itemize}
\item \textbf{Accuracy} $\frac{TN + TP}{n}$ -- метрика сама по себе неприменима.
\item \textbf{Precision} $\frac{TP}{TP+FP}$ -- уровень доверия к положительным ответам модели, доля истинных положительных объектов, выделенных классификатором как положительные.
\item \textbf{Recall} $\frac{TP}{TP+FN}$ -- какая часть положительных объектов правильно определена классификатором
\item \textbf{F-мера} (F-score) -- гармоническое среднее точности и полноты. F-мера обладает важным свойством -- она близка к нулю, если хотя бы один из аргументов близок к нулю: $F = \frac{2*precision*recall}{precision+recall}, 0\leq F \leq 1$
\item Ошибка 1 рода (Туре I Error) случается, когда объект ошибочно относится к положительному классу
\item Ошибка 2 рода (Туре II Error) случается, когда объект ошибочно относится к отрицательному классу
\end{itemize}
2023-02-13 13:59:23 +03:00
2023-02-14 12:34:47 +03:00
\subsection{Confusion Matrix}
Хорошо подходит для многоклассовой классификации. Классификация в случае двух классов:
\begin{equation*}
\begin{pmatrix}
TP & FP \\
FN & TN \\
\end{pmatrix}
\end{equation*}
FP, FN -- число элементов, определённых ложно.
Многоклассовая классификация, $m$ классов.
\begin{itemize}
\item $C = (c_{ij} i = 1, ..., m, j = 1, ..., m)$
\item $c_{ij} = |X_t:X_t \in i|a(X_t, g)= j|$
\item число объектов, принадлежащих классу $i$, отнесённые алгоритмом к классу $j$.
\begin{equation*}
\begin{pmatrix}
10 & 5 & 0 & 0 \\
3 & 12 & 0 & 0 \\
0 & 0 & 14 & 1 \\
0 & 0 & 0 & 15 \\
\end{pmatrix}
\end{equation*}
\end{itemize}
2023-02-13 13:59:23 +03:00
2023-02-14 12:34:47 +03:00
\subsection{Отбор признаков}
Посчитаем число вариантов признаковых описаний одного клиента. Число значений категориальных и бинарных признаков каждого клиента, не считая возраста, равно
\[N = 12 * 3 * 4 * 8 * 3 * 12 * 4 = 144 * 24 * 48 = 165888.\]
С ростом размера признакового пространства увеличивается сложность задачи и снижается достоверность решения.
2023-02-13 13:59:23 +03:00
2023-02-14 12:34:47 +03:00
\textbf{Шумовые признаки} -- это признаки, которые никак не связаны с целевой переменной. Зашумленность данных означает, что отдельные значимые объясняющие переменные, возможно, не были зарегистрированы или что дефолт произошел случайно.
2023-02-13 13:59:23 +03:00
2023-02-14 12:34:47 +03:00
\textbf{Методы отбора признаков}
\begin{itemize}
\item Обертки -- использующие для отбора признаков конкретную модель. Модель обучается на подмножестве признаков, для нее строится матрица ошибок, затем на другом и т.д.
\item Фильтры -- удаляем коррелированные данные матрица рассеяния, F-тест -- оценивает степень линейной зависимости между признаками и целевой переменной, поэтому он лучше всего подойдёт для линейных моделей. Реализован как \code{f_classif} для классификации; хи-квадрат -- оценивает степень линейной зависимости между признаками и целевой переменной.
\item Встроенные методы -- задача отбора признаков -- побочная задача (случайный лес)
\[ IG = H(S_i) - \frac{|S_{il}|}{|S_i|} H(S_{il}) - \frac{|S_{ir}|}{|S_i|} H(S_{ir}) \to \max \]
\end{itemize}
\textbf{Отбор категориальных признаков}
Значения категориальных признаков могут быть любыми объектами, на которых определена операция сравнения (равно и не равно).
\begin{itemize}
\item \textbf{Lable encoding} -- отображение каждого признака в число позволяет использовать его в модели обучения. Недостатки: неявно задает порядок категории, не может работать с неизвестными в процессе обучения значениями категориального признака
\item \textbf{Onehot coding} -- недостатки: увеличение количества признаков
\item \textbf{Target encoding} -- кодирование с учётом целевой переменной
\[ p_j(x \in X) = \frac{\sum_{i=1}^N[f_j(x\in X) = f_j(x_i)][y_i = 1]}{\sum_{i=1}^N[f_j(x\in X) = f_j(x_i)]} \]
где $p_j(x \in X)$ -- числовое значение $j$-го категориального признака на объекте $x, f_j(x_i)$ -- исходное значение $j$-го категориального признака на объекте $x_i$. Использование счетчиков может привести к переобучению. Модель может опираться на счетчики, если есть уверенность в том, что модель обучена по большому числу объектов. Сглаживание
\[ p_j(x \in X) = \frac{\sum_{i=1}^N[f_j(x\in X) = f_j(x_i)][y_i = 1] + C/N \sum_{i=1}^N[y_i = 1]}{\sum_{i=1}^N[f_j(x\in X) = f_j(x_i)] + C} \]
Если мало объектов этой категории, то числовое значение признака приближается близко к среднему по всей выборке, а для популярных к среднему значению по категории. $p_j(X) \to 1/N \sum_{i=1}^N[y_i = 1]$, если мало объектов в категории.
Значение категориального признака в задаче регрессии
\[ p_j(x \in X) = \frac{\sum_{i=1}^N[f_j(x\in X) = f_j(x_i)]*\ddot{y_i}}{\sum_{i=1}^N[f_j(x\in X) = f_j(x_i)]} \]
$\ddot{y_j}$ -- среднее значение $y_t$ для объектов с категориальным признаком.
\end{itemize}
\subsection{Permutation Importance, Feature selection}
Важность перестановки
\begin{itemize}
\item Случайным образом тасуется один столбец в валидационной выборке. Признак считается значимым, если точность модели сильно падает и вызывает увеличение ошибки и «неважным», если перетасовка его значений не влияет на точность модели.
\item Permutation Importance рассчитывается после обучения модели с использованием библиотеки ELI5. ELI5 -- это библиотека Python, которая позволяет визуализировать и отлаживать различные модели машинного обучения с использованием унифицированного API.
\item Feature selection -- отбор самых важных признаков. Оценка информативности признаков: Вычисление дисперсии: чем больше дисперсия, тем информативнее признак
\[ Var(x_j) = \frac{1}{N}\sum_{i=1}^N(x_{ij} - \overline{x_j})^2\]
Позволяет убирать малоинформативные признаки, недостатки: никак не учитываются значения целевой переменной.
\item Вычисление корреляции между значениями признака и целевой переменной (задача регрессии)
\item Задача классификации: Подсчет процента успешной классификации для каждого из значений признака $p$. По теореме Байеса считаем $P(X_j|Y)$ -- вероятность признака $X_j$, если объект принадлежит положительному классу. Если $P(X_j|Y = 1) > 0,7 \cup P(X_j|Y = 1) < 0,3$, то считаем $X_j$ информативным признаком.
\end{itemize}
2023-02-13 13:59:23 +03:00
2023-02-17 12:10:11 +03:00
\subsection{Отбор признаков по Теореме Байеса}
Теорема Байеса. Пусть $В_1, В_2, ..., В_r$, полная группа событий $А$ -- некоторое событие, вероятность которого связана с $В_i$, тогда
\[ P(B_i|A) = \frac{P(A|B_i)p(B_i)}{P(A)}\],
2023-02-28 15:00:50 +03:00
где $P(A) = \sum_{i=1}^rP(A|B_i)p(B_i)$.По теореме Байеса считаем $P(X_j,Y)$ -- вероятность признака $Х_у$, если объект принадлежит положительному классу. Если $Р(X_j |Y = 1) > 0,7 \cup P(X_j |Y = 1) < 0,3$, то считаем $X_j$, информативным признаком.
2023-02-17 12:10:11 +03:00
2023-02-28 15:00:50 +03:00
Пример. Оценим информативность признаков $x_j$, и $х_r$, по Теореме Байеса:
\begin{equation*}
\begin{gathered}
P(x_y = 1|Y = 1) =1/2
P(x_r = b|Y = 1) =3/16
\end{gathered}
\end{equation*}
2023-02-17 12:10:11 +03:00
2023-02-28 15:00:50 +03:00
\begin{tabular}{||r|c|c||}
\hline
$x_j$ & $X_r$ & $Y$ \\ [0.5ex]
\hline
1 & a & 1 \\
0 & a & 1 \\
1 & b & 1 \\
0 & a & 1 \\
1 & b & 0 \\
1 & b & 0 \\
\hline
\end{tabular}
2023-02-17 12:10:11 +03:00
\subsection{Наивный байесовский классификатор}
2023-02-28 15:00:50 +03:00
$ \mathcal{L} = \{X_t, Y_t\}_{t=1}^{N} $ -- обучающая выборка, $X_j=\left( \begin{array}{c} x_{1j}\\ ...\\ x_{Nj}\end{array} \right)$ -- j-ый признак, $X_k$ -- новый объект.
2023-02-17 12:10:11 +03:00
Предположение. При заданном значении класса $Y_t$ признаки $\dot{X_j}, ..., \dot{X_j}$ независимые.
2023-02-28 15:00:50 +03:00
\[P(X_j|Y, X_1, ..., X_{j-1}, X_{j+1},...X_r)=P(X_j|Y) \]
Применим теорему Байеса.
\[P(Y|X_1,...,X_r)=\frac{P(X_1,...X_r|Y)P(Y)}{P(X_1,...X_r)}\]
в силу независимости признаков:
\[P(Y|X_1,...,X_r)=\frac{\prod_{j=1}^rP(X_j|Y)P(Y)}{P(X_1,...X_r)}\]
2023-02-17 12:10:11 +03:00
2023-02-28 15:00:50 +03:00
\[Y\rightarrow\underbrace{argmax}_Y\prod_{j=1}^rP(X_j|Y)P(Y)\]
Найти класс объекта $X_k$. имеющего признаковое описание $(0,b)$. $P(Y=1|0,b)=?$, $P(Y=0|0,b)=?$
\begin{tabular}{||r|c|c||}
\hline
$x_j$ & $X_r$ & $Y$ \\ [0.5ex]
\hline
1 & a & 1 \\
0 & a & 1 \\
1 & b & 1 \\
0 & a & 1 \\
1 & b & 0 \\
1 & b & 0 \\
\hline
\end{tabular}
2023-02-17 12:10:11 +03:00
2023-02-14 12:34:47 +03:00
\subsection{ROC-кривая}
Число строк в квадрате справа равно числу единиц, число столбцов -- числу нулей. Стартуем из точки (0, 0)(левый нижний угол. Если значение метки класса в просматриваемой строке 1, то делаем шаг вверх; если 0, то делаем шаг вправо, если у нескольких объектов значения оценок равны, то делаем шаг в точку \textbf{а} блоков выше и \textbf{b} блоков правее, где \textbf{а} -- число единиц, \textbf{b} -- число нулей в рассматриваемой группе объектов.
Считаем сколько \% покрыто.
\begin{figure}[H]
\centering
\fontsize{14}{1}\selectfont
\includesvg[scale=1.01]{pics/04-bdisdt-00-roc.svg}
\end{figure}
2023-02-28 15:00:50 +03:00
$a(X_i,w)=[\langle w,X_i\rangle >t]$, где $t$ -- порог, оценка $\sum_{j=1}^m\omega_jx_{ij}$. $TPR=\frac{TP}{TP+FN}$, доля правильно определенных объектов положительного класса $FPR=\frac{FP}{FP+TN}$ доля неправильно определенных объектов положительного класса. Число строк в прямоугольнике равно \textbf{числу единиц}, число столбцов \textbf{числу нулей} вектора \textbf{$Y_i$}. Идем из точки (0, 0)(левый нижний угол). Если \textbf{$Y_i=1$} то шаг вверх; если 0, то шаг вправо. Если у нескольких объектов значения оценок равны, то делаем шаг в точку на $a$ блоков выше и $b$ блоков правее, где $a$ число единиц, $b$ число нулей.
\begin{tabular}{||r|c|c||}
\hline
$i$ & оценка &$Y_i$ \\ [0.5ex]
\hline
1 & 0.5 & 0 \\
2 & -0.1 & 0 \\
3 & 0.1 & 0 \\
4 & 0.6 & 1 \\
5 & 0.1 & 1 \\
6 & 0.3 & 1 \\
7 & -0.2 & 0 \\
\hline
\end{tabular}
\begin{tabular}{||r|c|c||}
\hline
$i$ & оценка &$Y_i$ \\ [0.5ex]
\hline
4 & 0.6 & 1 \\
1 & 0.5 & 0 \\
6 & 0.3 & 1 \\
3 & 0.1 & 0 \\
5 & 0.1 & 1 \\
2 & -0.1 & 0 \\
7 & -0.2 & 0 \\
\hline
\end{tabular}
2023-02-14 12:34:47 +03:00
\textbf{Принятие решений на основе кривой.} Для того, чтобы решить, какие объекты отнести к классу 1, а какие к классу 0, нужно будет выбрать некоторый порог (объекты с оценками выше порога относим к классу 1, остальные -- 0). Выбору порога соответствует выбор точки на ROC-кривой. Здесь для порога $0.25$ выбрана точка (1/4,2/3).
2023-02-28 15:00:50 +03:00
В случае бинарных ответов ROC-кривая состоит из трёх точек, соединёнными линиями: $(0,0)$, $(FPR, TPR)$, $(1, 1)$, где FPR и TPR соответствуют любому порогу из интервала $(0, 1)$. На рисунке зелёным показана ROCкривая бинаризованногорешения, AUC ROC после бинаризации уменьшилась и стала равна $8.5/12 \sim 0.71$. Формула для вычисления AUC ROC для бинарного решения:
\[\frac{TPR+FPR}{2}+TPR(1-FPR)+\frac{(1-FPR)(1-TPR}{2}=\frac{1+^2TPR-FPR}{2}\]
Площадь под ROC кривой оценивает качество ранжирования объектов. Индекс $\text{Джини}=2*S_{AUCROC}-1$
2023-02-14 12:34:47 +03:00
\begin{tabular}{||r|c|c||}
\hline
id & $>0.25$ & класс \\ [0.5ex]
\hline
4 & 1 & 1 \\
1 & 1 & 0 \\
6 & 1 & 1 \\
3 & 0 & 0 \\
5 & 0 & 1 \\
2 & 0 & 0 \\
7 & 0 & 0 \\
\hline
\end{tabular}
1/4 - это \% точек класса 0, которые неверно классифицированы алгоритмом (FPR = False Positive Rate),
2/3 - \% точек класса 1, верно классифицированых алгоритмом (TPR = True Positive Rate).
2023-02-13 13:59:23 +03:00
2023-02-28 15:00:50 +03:00
Качество ROC-кривой напрямую зависит от объёма выборки и количества признаков. С её помощью можно оченить информативность признаков (отобрать признаки).
\subsection{Площадь под ROC-кривой, AUC-ROC}
\textbf{AUC ROC} оценивает качество упорядочивания алгоритмом объектов двух классов, (например, по вероятности принадлежности объекта к классу 1). Ее значение лежит на отрезке [0, 1]. В рассматриваемом примере $AUC ROC = 9.5 / 12 \sim 0.79$.
На рисунке слева приведены случаи идеального, наихудшего и обратимого следования меток в упорядоченной таблице. Идеальному соответствует ROC-кривая, проходящая через точку $(0, 1)$, площадь под ней равна $1$. Если ROC кривая, проходит через точку $(1, 0)$, площадь под ней -- 0, в этом случае в результата инвертирования можно получить неплохую модель. Случайному -- что-то похожее на диагональ квадрата,площадь примерно равна $0.5$.
\textbf{Индекс $\text{Джини}=2*S_{AUCROC}-1$}
\begin{itemize}
\item Показатель AUC ROC предназначен скорее для сравнительного анализа нескольких моделей;
\item Его не имеет смысла использовать на коротких выборках
\item Высокий AUC ROC может существовать и в очень плохих моделях. Пример.
\end{itemize}
\begin{figure}[H]
\centering
\includegraphics[width=100mm]{04-bdaisdt-00-roc-bad.png}
\end{figure}
AUC ROC можно использовать для отбора признаков:
\begin{itemize}
\item Строим таблицу
\item Упорядочиваем по убыванию
\item Считаем AUC ROC
\end{itemize}
2023-02-17 12:10:11 +03:00
\subsection{Precision-recall кривая}
2023-02-28 15:00:50 +03:00
По оси абсцисс -- recall, по оси ординат -- precision. Критерий качества -- площадь под PR-кривой (AUC-PR).
2023-02-17 12:10:11 +03:00
2023-02-28 15:00:50 +03:00
$precision=\frac{TP}{TP+FP}, recall=\frac{TP}{TP+FN}; t_{min} precision=?, recall=1$ Качество оценки площади PR-кривой зависит от объёма выборки при разной пропорции классов: при малых объемах выборки отклонения от среднего увеличиваются.
2023-02-17 12:10:11 +03:00
2023-02-28 15:00:50 +03:00
\subsection{Тестирование модели}
Обучающая выборка делится на 3 части: На обучающей выборке происходит обучение алгоритма. На валидационной выбираются гиперпараметры. На тестовой выборке никакие параметры не меняются. $60-70 \%$ -- обучение, $40\%-30\%$ -- валидационная и тестовая выборки.
\begin{itemize}
\item ошибка обучения = доля неверно классифицированных обучающих примеров;
\item ошибка теста = доля ошибочно классифицированных тестовых примеров на валидационной выборке;
\item ошибка обобщения = вероятность неправильной классификации новых случайный примеров.
\end{itemize}
2023-02-17 12:10:11 +03:00
\subsection{Оценка}
Оценивание методов обычно проводится, относительно следцющих характеристик: скорость, робастность, интерпретируемость, надёжность.
\begin{itemize}
2023-02-28 15:00:50 +03:00
\item Скорость -- время которое требуется на создание модели и её использование
2023-02-17 12:10:11 +03:00
\item Робастность -- устойчивость к отклонениям от исходных предпосылок метода, например, возможность работы с зашумленными данными, пропущенными значениями в данных, нарушениями предположений о распределении и пр.
2023-02-28 15:00:50 +03:00
\item Интерпретируемость -- обеспечивает возможность понимания модели аналитиком предметной области.
\end{itemize}
Пусть для решения применили методы: деревья решений; байесовская классификация, метод ближайшего соседа; логистическая регрессия; метод опорных векторов. Можно ли сравнить их по вышеперечисленным характеристикам?
\subsection{Постановка задачи классификации}
Пусть $X_t\subset X$ -- объект множества $X$ c набором характеристик $(x_{t1},x_{t2},...,x_{tn})$, \textbf{Y} -- множество классов, к которым принадлежать объекты множества \textbf{X}.
$\{X_t, Y_t\}^N_{t=1}$ -- обучающая выборка, для которой в подмножестве объектов $X_t\subset X$ известны ответы $Y_t$. Требуется построить алгоритм $a:X \to Y$, который определяет ответы $Y_t$ для любого объекта $X_t$, не принадлежащего обучающей выборке $\mathcal{L} = \{X_t, Y_t\}^N_{t=1}$.
\begin{itemize}
\item По числу классов различают двухклассовую классификацию: множество классов $Y=\{-1,1\}$ или $Y=\{0,1\}$ и многоклассовую классификацию $Y=\{1, 2, ..., m\}$.
\item Множество «ответов» (классов) задается либо числом (обозначение класса), либо вектором $\{p_1,p_2,...P_m\}$, где $P_i$ - верность или степень уверенности применяемого алгоритма, что выбранный объект принадлежит классу $i, i = 1, 2, ..., m, \sum^m_{i=1}p_i = 1$.
\item Алгоритм $a(Xt)$ отображает объект $X_t$ на вектор ответов $a:(X_t, g)\to \bigg\{0,...,\underbrace{1}_i,...,0\bigg\}$, где $i$ -- номер класса, определенного алгоритмом для объекта $X_t$, или $a:(X_t, g)\to\{p_1, p_2, ..., p_m\}$, где $p_i$ -- вероятность класса, $g$ -- вектор гиперпараметров.
\item Классы могут пересекаться: рассматривают задачи с непересекающимися и пересекающимися классами: объект может относиться одновременно к нескольким классам. $Y=\{0, 1\}^M$, Пусть $M = 3$, тогда $Y = \{ 0, 1\}\times\{0,1\}\times\{0,1\}$ и результат $Y=\{1\}\times\{1\}\times\{0\}$ означает, что классифицируемый объект принадлежит первому и второму классам.
\end{itemize}
\subsection{Бинарная классификация линейной функцией}
Задача бинарной классификации -- разделение объектов множества $X$ на два класса. Пусть $\{X_i, Y_i\}^l_{i-1}$, где $X_i\in R^r,Y_i\in\{-1,1\}$, обучающая выборка. Линейная модель или алгоритм классификации:
\[ a(X_i,w)=w_0+\sum^m_{j=1}w_jx_{ij}=sign(\langle w,X_i\rangle+w_0) \]
где $j$ -- номер признака объекта, $m$ -- число признаков. Если считать, что все рассматриваемые объекты имеют постоянный первый признак равный 1, то
\[ a(X_i, w)=w_0+\sum^m_{j=1}w_jx_ij=\text{sign}(\langle w,X_i\rangle+w_0)\]
Алгоритм -- гиперплоскость в пространстве признаков с нормалью $||w||$ и расстоянием $a(x_i)$ до точки $x_i, \langle w, x_i\rangle$ -- скалярное произведение, величина которого пропорциональна расстоянию от разделяющей гиперплоскости $\langle w, x\rangle=0$ до $x_i$.
Если признаковое пространство может быть разделено гиперплоскостью на два полупространства, в каждом из которых находятся только объекты одного из двух классов, то обучающая выборка называется линейно разделимой.
\subsection{Метрики. Оценка качества работы алгоритма}
Обучение линейного классификатора заключается в поиске вектора весов $w$, на котором достигается минимум заданного функционала качества. Примеры:
\begin{enumerate}
\item Функция потерь:
\begin{equation*}
\begin{gathered}
L(a(x))=\frac{1}{l}\sum^l_{i=1}[sign(\langle w,X_i\rangle)\neq Y_i]\to min\\
L(a(x))=\frac{1}{l}\sum^l_{i=1}[sign(\langle w,X_i\rangle)*Y_i<0]\to min
\end{gathered}
\end{equation*}
используется в задаче классификации. Величина $M_i=\langle w,X_i\rangle)*Y_i$ называется отступом объекта $X_i$, она равна расстоянию от объекта до разделяющей гиперплоскости $(x,w)=0$
\[L(a(x))=\frac{1}{l}\sum^l_{i=1}[M_i<0]=L(M)\rightarrow min\]
Обозначение:
\begin{equation*}
[a(x_i)\neq y_i]=
\begin{cases}
1,if a(x_i)\neq y_itrue\\
0,if a(x_i)=y_ifalse
\end{cases}
\end{equation*}
\item Среднеквадратичная ошибка (mean squared error, MSE):
\[ L(a(x))=\frac{1}{l}\sum^l_{i=1}(a(X_i-Y_i))^2\to min \]
используется в задаче регрессии.
\end{enumerate}
\subsection{Верхняя оценка пороговой функции потерь}
Оценим функцию $L(M_i)$ сверху во всех точках $M L (M)=log(1+e^{-M}))$. Кусочно -- линейная функция потерь $\tilde{L}(M)=(1-M)^+=max(0,1-M)$. Экспоненциальная функция потерь $\tilde{L}(M)=EXP(-M)$. Квадратичная функция потерь $\tilde{L}(M)=M^2$.
Особенность оценочных функций в том, что они по значению больше, либо равны исходной пороговой. Следовательно, минимизация приводит к минимизации потерь и для пороговой функции.
\subsection{Задача классификации. Метод логистической регрессии}
Рассматриваем бинарную классификацию $Y={1,-1}$, хотим построить модель, которая выдает не номер класса, а вероятность принадлежности объекта к классу. Бинарная логистическая регрессия предсказывает вероятность того, что модель принадлежит к положительному классу. Будем говорить, что модель корректно предсказывает вероятности, если среди множества объектов, для которых модель предсказала вероятность $p$, доля положительных равна $p$.
Критерий $\sum^N_{i=1}\log(1+\exp(-Y_i\langle X_i,w\rangle)\to \underbrace{\min}_w$
\subsection{Классификация методом логистической регрессии}
Постановка задачи (требование к модели). Задача заключается в том, чтобы найти алгоритм $a(x)$, такой, что
\[arg\underset{b}{min}\frac{1}{l}\sum^l_{i=1}L(a(x),y)\approx p(y=+1|x)\approx \frac{1}{N}\sum^N_{i=1}y_i=1,\]
Если задача решена (мы корректно оценили вероятности), тогда при $l\to\infty$ получаем:
\[arg\underset{b}{min} EL(a(x),y)=p(y=+1|x),\]
где
\[EL(a(x),y)=p(y=+1|x)*L(a(x),1)+p(y=-1|x)*L(a(x),-1).\]
\subsection{Преобразование ответа линейной модели}
$\langle X_i,w\rangle \to \sigma(\langle X_i,w\rangle)=\frac{1}{1+exp(-\langle X_i,w\rangle)}\in[0,1]$, это преобразование сохраняет монотонность: если $z_1\leq z_2\to \sigma(z_1)\leq\sigma(z_2).$ Клаccификатор логистической регресии имеет вид:
\[b(\langle X_i,w\rangle)=\sigma(\langle X_i,w\rangle)\]
\subsection{Обучение модели}
\begin{itemize}
\item Eсли $Y_i=1$, то $\sigma(\langle X_i,w\rangle)\to 1$
\item Если $Y_i=-1$, то $\sigma(\langle X_i,w\rangle)\to 0$
\item Если $\sigma(\langle X_i,w\rangle)\to 0$ то алгоритм уверен, что правильный ответ 0
\item Если $\sigma(\langle X_i,w\rangle)\to 1$ то алгоритм уверен в положительном ответе
\end{itemize}
Как это сделать??
\begin{itemize}
\item Если $Y_i=1$, то $\sigma(\langle X_i,w\rangle)\to1,\langle X_i,w\rangle\to\infty$
\item Если $Y_i=-1$, то $\sigma(\langle X_i,w\rangle)\to0,\langle X_i,w\rangle\to -\infty$
2023-02-17 12:10:11 +03:00
\end{itemize}
2023-02-28 15:00:50 +03:00
Нужно максимизировать абсолютную величину отступа
\[Y_i\langle X_i,w\rangle\to \underbrace{\max}_w\]
\subsection{Выбор критерия}
Нужно: $Y_i\langle X_i,w\rangle\to \underbrace{\max}_w$, Проанализируем $\sigma(\langle X_i,w\rangle)=\frac{1}{1+exp(-\langle X_i,w\rangle)}$
\[-\sum^N_{i=1}\left\{[Y_i=1]\sigma(\langle X_i,w\rangle)+[Y_i=-1](1-\sigma(\langle X_i,w\rangle)\right\}\to\underbrace{\min}_w\]
Этот критерий плохо штрафует за ошибки, если алгоритм уверен в своем ошибочном объекте. Изменим критерий
\[-\sum^N_{i=1}\left\{[Y_i=1]log(\sigma(\langle X_i,w\rangle))+[Y_i=-1]log((1-\sigma(\langle X_i,w\rangle))\right\}\to\underbrace{\min}_w\]
log-loss $L(Y,z)=[Y=1]\log z+[y=-1]\log(1-z))$. Как изменится штраф? После несложных преобразований получим наш исходный критерий: $\sum^N_{i=1}log(1+exp(-Y_i\langle X_i,w\rangle))\to\underbrace{\min}_w$.
\subsection{Преобразование критерия}
\begin{equation*}
\begin{gathered}
-\sum^N_{i=1}\left\{[Y_i=1]\log(\sigma(\langle X_i,w\rangle))+[Y_i=-1]\log((1-\sigma(\langle X_i,w\rangle))\right\}=\\
-\sum^N_{i=1}\left\{[Y_i=1]\log\left(\frac{1}{1+exp(-\langle X_i,w\rangle)}\right)+[Y_i=-1]\log\left(1-\frac{1}{1+exp(-\langle X_i,w\rangle)}\right)\right\}=\\
\sum^N_{i=1}\left\{[Y_i=1]\log(1+\exp(-\langle X_i,w\rangle))-[Y_i=-1]\log\left(1-\frac{\exp(-\langle X_i,w\rangle)}{1+\exp(-\langle X_i,w\rangle)}\right)\right\}=\\
\sum^N_{i=1}\left\{[Y_i=1]\log(1+\exp(-\langle X_i,w\rangle))-[Y_i=-1]\log\left(1-\frac{1}{1+\exp(\langle X_i,w\rangle)}\right)\right\}=\\
\sum^N_{i=1}\left\{\log(1+\exp(-Y_i\langle X_i,w\rangle)\right\}=
\end{gathered}
\end{equation*}
2023-02-17 12:10:11 +03:00
\section{Решаемые задачи}
\[ [a(x_i)\neq y_i] =
\begin{cases}
1, if a(x_i) \neq y_i\\
0, if a(x_i) = y_i
\end{cases}
\]
$a(x_i)$ -- алгоритм обучения. Если применить алгоритм -- получим результат классификации $x_i$, сравниваемый с $y_i$.
\begin{multicols}{2}
2023-02-28 15:00:50 +03:00
\textbf{Классификация}
2023-02-17 12:10:11 +03:00
2023-02-28 15:00:50 +03:00
Линейный классификатор:
$a(x_i)=sign(\sum^r_{j-1}w_jf_{ij}+w_0) \to y_i$
2023-02-17 12:10:11 +03:00
2023-02-28 15:00:50 +03:00
Пороговая функция потерь алгоритма
$L(Y_i,a)=\frac{1}{l}\sum^l_{i=1}[(w,x_i)*y_i<0]\leq \tilde{L}(M)$
2023-02-17 12:10:11 +03:00
2023-02-28 15:00:50 +03:00
Метод обучения-минимизация эмпирического риска:
$L(Y_i,a)=\frac{1}{l}\sum^l_{i=1}[(w,x_i)*y_i<0]\leq \tilde{L}(M)\to \underset{w}{min}$
2023-02-17 12:10:11 +03:00
2023-02-28 15:00:50 +03:00
Мера качества: число неправильных классификаций
$Q(x,a)=\frac{1}{l}\sum^l_{i=1}[a(x_i)\neq y_i]$
2023-02-17 12:10:11 +03:00
2023-02-28 15:00:50 +03:00
\columnbreak
\textbf{Прогнозирование}
2023-02-17 12:10:11 +03:00
2023-02-28 15:00:50 +03:00
Линейная регрессия-прогноз
$a(x_i)=\sum^r_{j-1}w_jf_{ij}+w_0 \to y_i$, модель прогнозирования
Функция потерь алгоритма:
$L(a,y)=(a(X_i)-y_i)^2$
Методы обучения: наименьших квадратов; градиентного спуска:
$L(a,y)=\frac{1}{l}\sum_{i=1}^l(a(x_i))-y_i)^2\to \underset{w}{min}$
Мера качества. Средняя квадратичная ошибка (MSE):
$Q(a,x)=\frac{1}{l}\sum^l_{i=1}(a(x_i)-y_i)^2$
\end{multicols}
2023-02-17 12:10:11 +03:00
\subsection{Задача классификации. Метод логистической регрессии.}
Рассматриваем бинарную классификацию $Y = \{1, -1\}$, хотим построить модель, которая выдает не номер класса, а вероятность принадлежности объекта к классу. Бинарная логистическая регрессия предсказывает вероятность того, что модель принадлежит к положительному классу.
Будем говорить, что модель корректно предсказывает вероятности, если среди множества объектов, для которых модель предсказала вероятность $p$, доля положительных равна $p$.
Критерий $\sum_{i=1}^N \log(1+\exp(-Y_i\langle X_i, w\rangle) \to \underset{w}{min})$\footnote{Треугольные скобки означают скалярное произведение, абсолютную величину отступа}.
\section{Регрессия}
\subsection{Постановка задачи}
2023-02-28 15:00:50 +03:00
Пусть значение целевой переменной $Y\in R$ для входного вектора $X=\left\{X_1,X_2,...,X_n,..\right\}$ определяется значением детерминированной функции $g(X,w)$ с аддитивным гауссовым шумом:
\[Y=g(X,w)+\xi, \xi~N(0,\sigma^2)\]
Тогда
\[P(Y|X,w,\sigma^2)~N(g(X,w),\sigma^2)\]
2023-02-17 12:10:11 +03:00
2023-02-28 15:00:50 +03:00
Требуется построить функцию $g$: $(X,w)\implies R$ Вид функции $g$ мы задаем, веса $\omega$ определяются в процессе обучения.
2023-02-17 12:10:11 +03:00
\subsection{Модель прогнозирования}
2023-02-28 15:00:50 +03:00
Если линейно-зависимые столбцы мы не можем регрессировать. Разность между модельным и реальным называется разностью. Можно построить график разностей. Если они примерно однородны -- это линейные остатки. Если остатки не переходят в другие области такого графика -- это называется гомоскедастичность.
Пусть объект прогнозирования описывается формулой:
\[y_i=\sum^r_{j=1}(w_jx_ij+w_0)+\xi_i,\]
где:
\begin{enumerate}
\item Регрессоры (признаки) $x_{i1},...,x_{ir}$, не являются случайными величинами.
\item Столбцы $X,...,X_r$ - линейно независимы.
\item Последовательность ошибок удовлетворяет условиям («белый шум»):
\[E\xi_i=,Var(\xi_i)=\sigma^2_\xi, cov(\xi_i,\xi_j)=0, i\neq j\]
\end{enumerate}
Ошибки некоррелированыи гомоскедастичны. Если величины $\xi_i, i=1, 2, ..., n$,распределены по нормальному закону, то модель называется \textbf{Нормальной регрессионной моделью}.
По результатам наблюдений признаков требуется найти значения $w$, которые лучше всего объясняли бы $y_i$, т.е отклонение $\sum^l_{i=1}(y_i-a(x_i))^2$ было бы минимальными для всех возможных значений $(x_i, y_i), i=1, 2, ..., l$.
\subsection{Теорема Гаусса-Маркова}
2023-02-28 15:00:50 +03:00
При выполнении предположений 1-3 для модели
\[y_i=\sum^r_{j=1}(w_jx_{ij}+w_0)+\xi_i,\]
оценки $w_j$ полученные методом наименьших квадратов, имеют наименьшую дисперсию в классе всех линейных несмещенных оценок. Формула МНК: $W=(X^TX)^{-1}X^TY$. Сложность обращения матрицы $r^3$. Если столбцы линейно зависимы, то определитель матрицы $X$ равен 0.
\subsection{Регуляризация}
Если матрица $X$ -- вырожденная, то $(X^TX)$ -- не является обратимой, функционал $Q(a,x)=\frac{1}{l}\sum^l_{i=1}(\langle w,x_i\rangle-y_I)^2\to min$ может иметь бесконечное число решений и очень большие веса $w$. Тогда применяют регуляризацию -- минимизируют функционал
\[Q(a,x)=\frac{1}{l}\sum^l_{i=1}(\langle w,x_i\rangle-y_I)^2\to min\]
\begin{itemize}
\item $\sum|w|<\alpha$ Лассо-регрессия
\item $Q(a,x)=\frac{1}{l}\sum^l_{i=1}(\langle w,x_i\rangle-y_I)^2+\gamma||w||^2\to min$ Ридж-регрессия
\end{itemize}
Решение задачи регуляризации имеет вид:
\begin{itemize}
\item $w=(X^TX+\gamma w)^{-1}X^TY.$ Лассо-регрессия может привести к обнулению отдельных переменных
\item $w=(X^TX+\gamma E_n)^{-1}X^TY.$ Ридж-регрессия
\end{itemize}
Параметр $\gamma$ называется гипер-параметром.
\subsection{Стандартизация данных}
Признаки $x_i=\left\{f_{i1},f_{i2},...,f_{ir}\right\}$ объекта $х$ могут иметь различный физический смысл и размерности, поэтому коэффициент $w$, $у$ признака, принимающего большие значения, может принимать маленькие значения, не соответствующие важности признака. Поэтому для повышения способности модели к интерпретации следует выполнять стандартизацию признаков:
\[\hat{f_{ij}}=\frac{(f_{ij}-\bar{f_j})}{\sigma_j}, j = 1, 2, ..., r\]
где $\bar{f_j}=\frac{1}{l}\sum^l_{i=1}f_{ij}$ выборочное среднее, а $\sigma_j=\frac{1}{l}\sum^l_{i=1}(f_{ij}-\bar{f_j})^2$ выборочное средне-квадратичное отклонение.
\subsection{Регуляризация в логистической регрессии}
Логистическая функция потерь:
\[\tilde{D}(M)=log(1+e^{-M}),\] где \[M=y_i(\langle w,x_i\rangle+w_0)\] -- margin (отступ) объекта. Минимизация эмпирического риска:
\begin{itemize}
\item $\frac{1}{l}\sum^l_{i=1}\log(1+e^{-y_i\langle w,x_i\rangle})\to min$ -- без регуляризации
\item $\frac{1}{l}\sum^l_{i=1}\log(1+e^{-y_i\langle w,x_i\rangle})+C||w||_2\to \underbrace{\min}_{C,w}$ -- с регуляризацией по норме $L_2$
\item $\frac{1}{l}\sum^l_{i=1}\log(1+e^{-y_i\langle w,x_i\rangle})+C||w||_1\to \underbrace{\min}_{C,w}$ -- с регуляризацией по норме $L_1$
\end{itemize}
\subsection{Меры качества прогнозирования }
\begin{enumerate}
\item Средняя квадратичная ошибка $Q(a,x)=MSE=\frac{1}{l}\sum^l_{i=1}(a(x_i)-y_i)^2$
\item Корень из среднеквадратичной ошибки (root mean squared error, RMSE): $RMSE=\sqrt{\frac{1}{l}\sum^l_{i=1}(a(x_i)-y_i)^2}$
\item коэффициент R2 или коэффициент детерминации: $R^2=1-\frac{\sum^l_{i=1}(a(x_i)-y_i)^2}{\sum^l_{i=1}(y_i-\bar{y})^2}$ где $\bar{y}=\sum^l_{i=1}y_i, \sum^l_{i=1}(a(x_i)-y_i)^2$ доля дисперсии объясняемая моделью.
\item Среднее абсолютное отклонение (mean absolute error, MAE): $MAE(a,x)=\frac{1}{l}\sum^l_{i=1}\lceil y_i-a(x_i)\rceil$
\end{enumerate}
\subsection {Критерии Акаике и Шварца}
Критерий Акаике:
\[AIC=\widehat{\ln \sigma_r}^2+2\frac{r}{l}\]
Критерий Шварца:
\[AIC=\widehat{\ln \sigma_r}^2+\frac{r\ln l}{l}\]
строго состоятельны.
\[\hat{\sigma}^2_r=\sum^n_{j=m+1}\xi^2_j/(l-r)\]
-- дисперсия ошибки, r -- число признаков. Оптимальная модель имеет минимальное значение критерия. Использование информационных критериев для построения модели:
\begin{itemize}
\item Построить все возможные варианты регрессионной модели, удовлетворяющие критериям (см пред лекцию)
\item Наилучшая модель должна иметь минимальные значения критериев Акаикеи Шварца.
\end{itemize}
\subsection {Меры качества прогнозирования}
Скорректированный Коэффициент детерминации $R^2_{adj}=R^2-\frac{r}{l-r}(1-R^2)$. Выбор признаков: если в модель не будет включена переменная, которая должна быть там, то
\begin{enumerate}
\item Уменьшается возможность правильной оценки и интерпретации уравнения
\item Оценки коэффициентов могут оказаться смещенными
\item Стандартные ошибки коэффициентов и соответствующие t-статистики в целом становятся некорректными.
\end{enumerate}
\textbf{Четыре критерия для включения переменной}
\begin{enumerate}
\item Роль переменной в уравнении опирается на прочные теоретические основания
\item Высокие значения t-статистики $t_{stat}=\frac{w-\bar{w}}{\sigma_w\sqrt{l}}$
\item Исправленный коэффициент детерминации растет при включении переменной
\item Другие коэффициенты испытывают значительное смещение при включении новой переменной
\end{enumerate}
% \subsection {Пример решения задачи регрессии с ис}
2023-02-17 12:10:11 +03:00
2023-02-27 17:37:31 +03:00
\section{Линейная регрессия}
$g(X_i,w)=\sum^r_{j=1}(w_jx_{ij}+w_0)\rightarrow Y_i$ , модель прогнозирования, $X_i-r$–мерный вектор. Функция потерь алгоритма: $L(a,y)=(g(X_i,w)-Y_i)^2$. Методы обучения:
\begin{itemize}
\item наименьших квадратов;
\item градиентного спуска:
\[L(a,y)=\frac{1}{l}\sum^l_{i=1}(g(X_i,w)-Y_i)^2\to \underset{w}{\min}\]
\end{itemize}
Мера качества. Средняя квадратичная ошибка (MSE): $Q(a,x)=\frac{1}{l}\sum^l_{i=1}(g(X_i,\omega)-Y_i)^2$
2023-02-27 17:37:31 +03:00
\begin{equation*}
\begin{gathered}
R^2 = 1-\frac{\sum_{i=1}^l(a(x_i)-y_i)}{\sum_{i=1}^l(y_i-\overline{y})^2}\\
\overline{y} = \frac{1}{n}\sum y_i\\
MSE = \frac{1}{n}\sum_{i=1}^n(y_i - \overline{y})^2 = \sigma^2_r
\end{gathered}
\end{equation*}
числитель -- среднеквадратичная ошибка, знаменатель -- простое среднее. Хорошая модель -- где ошибка классификатора минимальна. В модель нежелательно включать лишние регрессоры (штрафы по критериям Aкаике и Iварца).
2023-02-27 17:37:31 +03:00
Критерии для включения переменной
\begin{enumerate}
\item Роль переменной в уравнении опирается на прочные теоретические основания
\item высокие значения t-статистики $t_{stat} = \frac{\omega-\overline{\omega}}{\sigma_\omega\sqrt{l}}$
\item исправленный коэффициент детерминации растёт при включении лишней переменной
\item другие коэффициенты испытывают значительное смещение при включении лишней новой переменной
\end{enumerate}
\begin{equation*}
\begin{gathered}
y = \omega x + \omega_0 = \tilde{\omega{x}} \to \frac{1}{1-e^{-\omega x}} = \sigma\\
x = (x_1, ..., x_K 1)
\end{gathered}
\end{equation*}
регрессия выдаёт вероятности. Алгоритм максимизирует отступ классификатора (расстояние до ближайшего объекта).
2023-02-28 15:00:50 +03:00
\subsubsection {Нелинейная регрессия. Базисные функции.}
\[g(X,w)\sum^p_{j=1}w_j\varphi_j(X)+w_0=\sum^p_{j=0}w_j\varphi_j(X),\varphi_0(X)=1'\]
Число базисных функций может отличаться от числа признаков $j$.
\section{Метод опорных векторов}
\includegraphics[width=0.5\textwidth]{pics/04-bdaisdt-ROC-11.png}
\begin{itemize}
\item Решает задачу бинарной классификации $Y=\left\{1,-1\right\}$
\item Классификатор линейный -- $\langle X_i, w \rangle $,
\item Функция потерь $L(\mathcal{L},a(x))=\sum^N_{i=1}(0,1-Y_i\langle X_i,w\rangle)\rightarrow \underset{w}{\min}$
\item Алгоритм максимизирует отступ классификатора (расстояние до ближайшего объекта), при условии минимизации числа ошибок.
\end{itemize}
2023-02-27 17:37:31 +03:00
\subsection{Линейно разделимый случай}
Мы можем найти такие параметры, при которых классификатор не допускает ни одной ошибки
Пусть существуют такие параметры $w^*$ и $b^*$, что классификатор $a(X_i,w)=sign(\langle w^*, X_i\rangle+b^*)$ не допускает ни одной ошибки на обучающей выборке, т.е. выборка является линейно разделимой. Тогда строим алгоритм такой, что
\begin{enumerate}
\item $Y_i(\langle X_i, w\rangle+w_0)>0, i=1,2,...,N;$
\item Отступ классификатора -- расстояние от границы до ближайшего объекта максимальное.
\end{enumerate}
\includegraphics[width=0.25\textwidth]{pics/04-bdaisdt-ROC-12.png}
Величина отступа или функция потерь алгоритма на обучающей выборке :
\[D(x,a)=\frac{1}{l}\sum^l_{i=1}[sign(w, x_i)*y_i<0]\]
где $sign(w, x_i)*y_i$ называется отступом. Положительный знак отступа соответствует правильному ответу, отрицательный -- неправильному, величина отступа -- среднее расстояние от разделяющей гиперплоскости до объектов. Метод обучения -- минимизация эмпирического риска. Функционал
\[D(x,a)=\frac{1}{l}\sum^l_{i=1}[sign(w, x_i)*y_i<0]\to \underset{w}{min}\]
не допускает использование градиентных методов поиска экстремума.
\subsection{Отступ классификатора}
Пусть $(sign\langle \hat{w},X_i \rangle+\hat{b})$ -- построенный линейный классификатор. Тогда расстояние от любой точки $X_i\in{X_t,Y_t},t=1,2,...,N$ обучающей выборки до гиперплоскости, определяемой уравнением,$\hat{w}X+\hat{b}=0$ равно:
\[ \rho_0(x,a)=\frac{|\hat{w}X_i+\hat{b}|}{||\hat{w}||}\]
оно совпадает с отступом объекта $X_i$, следовательно, отступ классификатора равен
\[\underbrace{\min}_{i=1,2,...,N}\frac{|\hat{w}X_i+\hat{b}|}{||\hat{w}||}\]
\textbf{Вычисление ширины разделяющей полосы классификатора}
Ищем $\alpha$ такое, что для $w^*=\alpha\hat{w}$ и $b^*=\alpha\hat{b}$
2023-02-27 17:37:31 +03:00
\[\underbrace{\min}_{i=1,2,...,N}|w^*X_i+b^*|=1\]
2023-02-27 17:37:31 +03:00
Тогда расстояние от гиперплоскости до ближайшего объекта обучающей выборки равно $\underbrace{\min}_{i=1,2,...,N}\frac{w^*X_i+b^*}{||w*||}=\frac{1}{||w^*||}$, т.е. ширина разделяющей полосы (отступ классификатора) равна $\frac{2}{||w^*||}$
2023-02-27 17:37:31 +03:00
Строим классификатор, без ошибок разделяющий обучающую выборку и имеющий максимальный отступ.
\[ \begin{cases}
\begin{gathered}
y_i(\langle w^*,X_i\rangle + b^*)\geq 1, i = 1, 2, ..., l\\
||w^*||^2/2 \to \underbrace{\min}_{b^*,w^*}
\end{gathered}
\end{cases}\]
2023-02-27 17:37:31 +03:00
Первое условие означает отсутствие ошибок классификации для линейно разделимой выборки.
\textbf{Неразделимый случай.} Если в выборке есть $X_i$, такие что при любых $w^*$ и $b^*$, не существует решения задачи, то для них рассматриваются ограничения
\[y_i(\langle w^*,X_i\rangle+b^*)\geq 1-\xi_i\]
где $\xi_i>0$ -- штраф за нарушение ограничений. Если отступ объекта лежит между 0 и 1, то объект верно классифицируется, но штрафуется за попадание внутрь разделяющей полосы.
\subsection{Метод опорных векторов для линейно неразделимой выборки}
Найти такие $w,b,\xi_i$, для которых задача
\[ \begin{cases}
\begin{gathered}
||\hat{w}||^2/2+C\sum^l_{i=1}\xi_i\to \underbrace{min}_{b,w,\xi}\\
y_i(\langle \hat{w},X_i\rangle + \hat{b})\geq 1-\xi_i, i = 1, 2, ..., l\\
\xi_i \geq 0, i = 1, 2, ..., l\\
\end{gathered}
\end{cases}\]
Имеет допустимое решение, где $С>0$ -- гипер-параметр
\textbf{Замена задачи условной оптимизации задачей безусловной оптимизации}
Задача условной оптимизации
\[ \begin{cases}
\begin{gathered}
||\hat{w}||^2/2+C\sum^l_{i=1}\xi_i\to \underbrace{min}_{b,w,\xi}\\
y_i(\langle \hat{w},X_i\rangle + \hat{b})\geq 1-\xi_i, i = 1, 2, ..., l\\
\xi_i \geq 0, i = 1, 2, ..., l\\
\end{gathered}
\end{cases}\]
Перепишем второе и третье условия в виде:
\[ \begin{cases}
\begin{gathered}
\xi_i\gg 1 - y_i(\langle \hat{w},X_i\rangle + \hat{b})\\
\xi_i \geq 0
\end{gathered}
\to \xi_i \geq max(0,1-y_i(\langle \hat{w},X_i\rangle + \hat{b}))
\end{cases}\]
Отступ $М$ по определению равен $M=y_i(\langle \hat{w},X_i \rangle+\hat{b})$, тогда $\max(0,1-(\langle \hat{w},X_i \rangle+\hat{b}))=\max(0,1-M)$. И задача безусловной оптимизации имеет вид
\[||\hat{w}||^2/2+С\sum^l_{i=1}max(0,1-M)\rightarrow \underbrace{\min}_{\hat{w},M}\]
\subsection{Сравнение логистической регрессии и SVM}
Логистическая регрессия требует, чтобы отступ уходил в $+\infty$ на каждом объекте -- важно для формирования корректных вероятностей, SVM достаточно отступа равного 1.
\includegraphics[width=0.5\textwidth]{pics/04-bdaisdt-ROC-13.png}
\subsection{Логистическая регрессия -- задание параметров}
\begin{verbatim}
LogisticRegression (penalty='l2', *, dual=False, tol=0.0001, C=1.0,
fit_intercept=True, intercept_scaling=1, class_weight=None,
random_state=None, solver='lbfgs', max_iter=100, multi_class='auto',
verbose=0, warm_start=False, n_jobs=None, l1_ratio=None) [source]
\end{verbatim}
Регуляризация применяется по умолчанию, Solver -- \code{liblinear, bfgs, newton-cg, sag} -- алгоритмы минимизации эмпирического риска.
\begin{enumerate}
\item Алгоритм Бройдена-Флетчера-Голдфарба-Шанно -- \code{bfgs}
\item Алгоритм сопряженных градиентов (Ньютона) -- \code{newton-cg}
\item Стохастический алгоритм усредненного градиента -- \code{sag}
\end{enumerate}
Решатели «newton-cg», «sag» и «lbfgs» поддерживают только регуляризацию L2. По умолчанию классификатор содержит константу. \code{Liblinear} для небольших размерностей данных, \code{sag} -- для больших. С -- гиперпараметр, не может определяться по обучающей выборке.
\code{class_weight}: \code{dict} or \code{balanced} (default=\code{None}) -- веса классов по умолчанию -1, \code{balanced} -- веса устанавливаются обратно пропорционально частотам класса во входных данных.
\code{max_iter}: int(default=100) -- используется только для \code{newton-cg}, \code{sag} и \code{lbfgs}.
\subsection{svm.LinearSVC}
\begin{verbatim}
svm.LinearSVC (penalty='l2', loss='squared_hinge',*, dual=True,
tol=0.0001, C=1.0, multi_class='ovr', fit_intercept=True,
intercept_scaling=1, class_weight=None, verbose=0,
random_state=None, max_iter=1000)
\end{verbatim}
использование \code{penalty=l1'}, и функции потерь \code{loss='squared_hinge} не поддерживается, $С >0$ -- гиперпараметр.
\begin{verbatim}
svm.SVC (*, C=1.0, kernel='rbf', degree=3, gamma='scale', coef0=0.0,
shrinking=True, probability=False, tol=0.001, cache_size=200,
class_weight=None, verbose=False, max_iter=- 1,
decision_function_shape='ovr', break_ties=False, random_state=None)
\end{verbatim}
\subsection{Оценка качества решения задачи. Режимы тестирования}
\begin{itemize}
\item \textbf{Отложенная выборка:} выделение обучающей, валидационной, и тестовой выборок, оценка качества работы алгоритма на обеих выборках.
\item \textbf{Полная кросс-валидация}. Выбирается значение $t$, затем выборка разбивается всеми возможными способами на две части: $T^l=T^t\cup T_{l-t}$, вычисляется средняя оценка качества по всем разбиениям.
\item \textbf{K-fold кросс-валидация}. Обучающая выборка разбивается на $k$ непересекающихся одинаковых по объему частей. Выполняется $k$ итераций. На каждой итерации из выборки удаляется одна из частей и модель обучается по оставшимся частям выборки. Модель тестируется на части обучающей выборки, которая не участвовала в обучении. Вычисляется средняя оценка качества по всем разбиениям
\end{itemize}
2023-02-27 17:37:31 +03:00
% \section{Домашнее задание}
2023-03-06 09:07:56 +03:00
\section{Задания на РК}
В таблице показаны прогнозы, сделанные по двум регрессионным моделям. Для каждой модели рассчитайте сумму квадратов ошибки и оцените качество моделей.
\begin{table}[H]
\centering
\begin{tabular}{||r|c|c||}
\hline
f1 & f2 & fact \\ [0.5ex]
\hline\hline
2.623 & 2.664 & 2.691 \\
2.423 & 2.436 & 2.367 \\
2.423 & 2.399 & 2.412 \\
2.448 & 2.447 & 2.440 \\
2.762 & 2.847 & 2.693 \\
2.435 & 2.411 & 2.493 \\
2.519 & 2.516 & 2.598 \\
2.772 & 2.870 & 2.814 \\
2.601 & 2.586 & 2.583 \\
2.422 & 2.414 & 2.485 \\
\hline
\end{tabular}
\end{table}
\[MSE_1 = \frac{1}{N}\sum_{i=1}^N(f_i-f1_i)^2\]
\section{Решающие деревья, случайный лес}
Дерево -- это ациклический граф.
Решающие деревья -- это инструмент построения логических алгоритмов для решения задач классификации и регрессии. В отличие от линейных алгоритмов позволяет восстанавливать нелинейные зависимости произвольной сложности.
Алгоритм обучения, на вход которого поступает обучающая выборка $(X, Y) = (x_i,y_i)_{i=1}-1^l$, строит решающее дерево, которое представляет собой связный ациклический граф, включающий:
\begin{itemize}
\item набор вершин двух типов вершин: внутренних и листовых;
\item набор правил перехода из внутренних вершин в листовые и внутренние;
\item набор правил останова- прекращения обучения.
\end{itemize}
После окончания процесса обучения для каждого объекта $x \in (X,Y)$ определяется класс или вектор степени уверенности алгоритма в выборе каждого класса в случае решения задачи классификации;
\subsection{Параметры алгоритма обучения}
квадратные скобки -- это предикаты -- если да, идём налево в дереве, если нет -- направо.
\subsection{Энтропия}
Энтропия -- это уровень неопределённости относительно реализации случайной величины $H = -\sum_{i=1}^k p_i \log_2p_i$.
\subsection{Критерии качества разбиения}
\textbf{IG -- information gain}
Вместо IG можно рассматривать взвешенный энтропийный критерий, Критерий джини, критерий в задачах в регрессии.
\subsection{Листовые вершины}
В каждой листовой вершине дерево будет выдавать константу или вектор вероятностей.
2023-03-17 12:16:48 +03:00
\subsection{Жадный алгоритм построения бинарного решающего дерева}
Конкретный метод построения решающего дерева определяется
\begin{enumerate}
\item Видом предикатов в вершинах
\item функционалом качества
\item Критерием останова
\item Методом обработки пропущенных значений
\item Методом стрижки удаление некоторых вершин с целью понижения сложности и способности к переобучения
\end{enumerate}
Обработка пропусков. Задачи регрессии и бинарной классификации.
\textbf{Регрессия:} Заменяем пропущенные значения средними, спрогнозированными другими признаками. \textbf{Решающие деревья.} При построении: выбираем предикат в вершине, отправляем объекты с пропусками в оба поддерева. \textbf{Суррогатные предикаты}.
\subsection{Преимущества и ограничения}
\subsection{Ансамбль алгоритмов}
Если ответы регрессоров на объекте -- независимые случайные величины с одинаковым матожиданием и дисперсией, то выполняются следующие свойства:
\begin{equation*}
\begin{gathered}
\xi = \frac{1}{n}(\xi_1+\xi_2+...+\xi_n)\\
E\xi = \frac{1}{n}(E\xi_1+E\xi_2+...+E\xi_n) = \frac{nE\xi_1}{n} = E\xi_1\\
D\xi = \frac{1}{n^2}(D\xi_1+D\xi_2+...+D\xi_n) = \frac{D\xi_1}{n}
\end{gathered}
\end{equation*}
Пусть имеется 3 независимых классификатора с вероятностью ошибки $p$ и решение принимается голосованием по большинству. Какова вероятность ошибки трёх классификаторов?
\begin{equation*}
\begin{gathered}
1-p, p, p; p, 1-p, p; p, p, 1-p;\\
p^3 + 3p^2(1-p)\\
(p+(1-p))^3\\
c_n^0p^0+c_n^1p(1-p)^{n-1}+c_n^2p^2(1-p)^{n-2}+...
\end{gathered}
\end{equation*}
\subsection{}
2023-04-04 09:56:51 +03:00
\newpage
\appendix
\setcounter{secnumdepth}{0}
\section*{Приложения}
\addcontentsline{toc}{section}{Приложения}
\renewcommand{\thesubsection}{\Asbuk{subsection}}
\subsection{Задачи с РК}
ловушка, 3 неразличимых выхода, 1вых 3ч 2вых 2ч ведёт обратно, 3 вых 1ч ведётобратно
шанс с первого раза Мо1-1/3
\begin{equation*}
\begin{gathered}
M = 1/3*3+1/3(1+M)+1/3(2+M)\\
M-1/3M-1/3M=1+1/3+2/3\\
1/3M = 2\\
M=6
\end{gathered}
\end{equation*}
2023-03-17 12:16:48 +03:00
2023-04-04 09:56:51 +03:00
$x \in [0,1]$, плотность распределения $f(x) = 1/2e^{-|x|}$, найти мат. ожидание и дисперсию
ChatGPT says:
Математическое ожидание:
$$
\mathbb{E}(X) = \int_{-\infty}^{\infty}xf(x)dx =
\int_{-1}^{0}\frac{x}{2}e^{x}dx + \int_{0}^{1}\frac{x}{2}e^{-x}dx
$$
Интегрируем первое слагаемое по частям:
$$
\int_{-1}^{0}\frac{x}{2}e^{x}dx =
\left[\frac{x}{2}e^{x}\right]_{-1}^{0} -
\int_{-1}^{0}\frac{1}{2}e^{x}dx = \frac{1}{2} - \frac{1}{2e}
$$
Интегрируем второе слагаемое:
$$
\int_{0}^{1}\frac{x}{2}e^{-x}dx =
-\left[\frac{x}{2}e^{-x}\right]_{0}^{1} +
\int_{0}^{1}\frac{1}{2}e^{-x}dx = \frac{1}{2} - \frac{1}{2e}
$$
Суммируем:
$$
\mathbb{E}(X) = \frac{1}{2} - \frac{1}{2e} + \frac{1}{2} -
\frac{1}{2e} = 1 - \frac{1}{e} \approx 0.632
$$
Дисперсия:
$$
\mathbb{E}(X^2) = \int_{-\infty}^{\infty}x^2f(x)dx =
\int_{-1}^{0}\frac{x^2}{2}e^{x}dx +
\int_{0}^{1}\frac{x^2}{2}e^{-x}dx
$$
Интегрируем по частям:
$$
\int_{-1}^{0}\frac{x^2}{2}e^{x}dx =
\left[\frac{x^2}{2}e^{x}\right]_{-1}^{0} - \int_{-1}^{0}xe^{x}dx =
-\frac{1}{2} - \frac{1}{e}
$$
$$
\int_{0}^{1}\frac{x^2}{2}e^{-x}dx =
-\left[\frac{x^2}{2}e^{-x}\right]_{0}^{1} + \int_{0}^{1}xe^{-x}dx
= \frac{1}{2} - \frac{3}{2e}
$$
Суммируем:
$$
\mathbb{E}(X^2) = -\frac{1}{2} - \frac{1}{e} + \frac{1}{2} -
\frac{3}{2e} = 1 - \frac{5}{2e} \approx 0.472
$$
Используем формулу для дисперсии:
$$
\text{Var}(X) = \mathbb{E}(X^2) - (\mathbb{E}(X))^2 \approx 0.472
- (0.632)^2 \approx 0.109
$$
2023-02-13 13:59:23 +03:00
\end{document}