-
Jupyter
-
Возможности
-
!
- запускает строку как выполнение через терминал
-
%
-
Позволяет выполнить альтернативный "код" в строке
- %lsmagic
- список того, что можно запустить
- %bash
- выполнение баш-скрипта
- %pylab inline
- позволяет рисовать графики
-
$$ формула $$
-
использование latex в md
- $$ c = \sqrt{a^2 + b^2} $$
- Математика
- Библиотеки
-
Дополнительно
-
Комплексные числа в питоне
- омплексными числами называются числа вида 𝑥+𝑖𝑦 , где 𝑥 и 𝑦 — вещественные числа, а i — мнимая единица (величина, для которой выполняется равенство i**2=−1 ). Множество всех комплексных чисел обозначается буквой С
- a = 3 + 2j
b = 1j
-
print("Комплексное число a:\n", a)
print("Комплексное число b:\n", b)
- Комплексное число a:
(3+2j)
Комплексное число b:
1j
-
С комплексными числами в питоне можно производить базовые арифметические операции так же, как и с вещественными числами:
- c = a * a
d = a / (4 - 5j)
-
print("Комплексное число c:\n", c)
print("Комплексное число d:\n", d)
- Комплексное число c:
(5+12j)
Комплексное число d:
(0.0487804878048781+0.5609756097560976j)
-
Обучение на размеченных данных
-
Понятия
-
Введение
- Интерполяция — это значит восстановление функции по нескольким точкам, в которых известны ее значения.
- Обучение с учителем — это тоже восстановление общей закономерности по конечному числу примеров.
-
Объекты и ответы
- x - объект
- Х - пространство объектов
- y = y(x) - ответ
- Y - пространство ответов
- признаки
- x = (x1, x2, ..., xd) - признаковое описание
- d-мерный вектор
- xi - число, элемент множества, ...
-
Обучающая выборка
- Машинное обучение - извлечение закономерностей из примеров
- X = (xi, yi)^l i=1
- l-пары
- Обучающая выборка обозначается большой буквой X и состоит из l пар объектов и ответов. xi-тое — это i-тый объект обучающей выборки, yi-тое — это истинный ответ на нем, то, что нужно предсказать.
-
Алгоритм
- a(x) - алгоритм, модель
- Функция из X в Y
- алгоритм должен быть реализуем на компьютере
- пример
- линейный алгоритм
- a(x) = sign(w0 + w1*x**1 + ... + wd*x**d)
- Поскольку такая линейная комбинация признаков — это, по сути, любое вещественное число, а в нашей задаче ответов всего два, −1 и +1, понравился фильм или не понравился, то нужно взять знак от этой суммы, то есть для задачи классификации, для задачи определения понравится фильм или не понравился, алгоритм будет иметь вид знака от линейной комбинации всех признаков объекта.
- константный алгоритм
- a(x)=1
- Q(a, X) - ошибка алгоритма a на выборке X
- например, доля неправильных ответов
- Q - функционал ошибки (не функция)
-
Обучение с учителем
- Q(a, X) -> min
- A - семейство алгоритмов
- Решающие пни: А = {[x**j < t] | ∀ j,t}
- Каждый решающий пень делает очень простую вещь: он берет некоторый один фиксированный признак xj-тое и сравнивает его значение на данном объекте с некоторым порогом t. Если значение признака меньше этого порога, то алгоритм возвращает ответ −1, говорит, что этому пользователю фильм не понравится. Если же значение j-того признака больше или равно порога t, то алгоритм дает ответ +1, говорит, что пользователю фильм понравится.
- Это очень простые алгоритмы, они могут проверять только очень простые факты вроде «Пользователь посмотреть больше трех комедий». Понятно, что здесь нужно проверять более сложные, парные взаимодействия, например, «Пользователь посмотрел больше трех комедий» и «Данный фильм является комедией». Но решающие пни на это не способны, для этого нужны более сложные семейства алгоритмов.
- Тем не менее, решающие пни пригодятся нам в этом курсе для составления сложных композиций алгоритмов.
- И нужно найти такой алгоритм из семейства алгоритмов A, на котором будет достигаться минимум функционала ошибки, то есть найти такой алгоритм, который будет лучше всего решать нашу задачу, лучше всего подходить к нашей обучающей выборке.
-
Основные вопросы
- Каким выбрать функционал ошибки?
- Какое взять семейство алгоритмов?
- Как обучить алгоритм?
- Как сформировать признаки?
- Как подготовить данные?
-
Типы задач при обучении с учителем
- Тип задач определяется пространством ответов Y
-
Бинарная классификация
- Y = {0, 1}
- Множества объектов, которые имеют один ответ, например ответ «–1», называются классом, и говорят, что нужно уметь относить объект к одному из двух классов или классифицировать эти объекты.
- Примеры
- Понравится ли пользователю фильм
- Вернет ли клиент кредит
- Нужно ли делать пациенту операцию
- Качественное ли вино
-
Многоклассовая классификация
- Y = {0, 1, ..., K} - многоклассовая классификация
- Примеры
- Из какого сорта винограда сделано вино
- На какую тему статья
- Какой тип имеет машина на фото
-
Регрессия
- Y = R
- Пространство ответов - все вещественные числа
- Предсказание роста по весу
- Примеры
- Какая завтра температура
- Сколько денег заработает магазин за год
- Сколько лет человеку на фото
-
Ранжирование
- Результаты поиска
-
Обучение без учителя
-
Виды обучения
- Обучение с учителем - объекты и ответы
- Обучение без учителя - только объекты
- Частичное обучение - объекты, некоторые с ответами
- Активное обучение - на каком объекте получить ответ
-
Примеры постановки задач
- Кластеризация
- Найти группы похожих объектов
- Не знаем количество кластеров
- Не знаем правильных ответов
- Примеры
- Сегментация пользователей
- Поиск схожих пользователей в социальных сетях
- Поиск генов с похожими профилями экспрессии
- Визуализация
- Задача: нарисовать многомерную выборку
- Должна отражать структуру объектов
- Должно быть красиво
- визуализация датасета с рукописным начертанием цифр
- Поиск аномалий
- Определить объект, который не похож на большинство
- Примеров аномалий мало или вообще нет
- Примеры
- Определение поломки в системах самолета
- Определение поломки интернет-сайта
- Выявление проблем в модели машинного обучения
-
Признаки в машинном обучении
-
Признаки
- Описывают объекты
- Dj - множество значений j-го признака
-
Типы
- Бинарные
- Dj = {0, 1}
- пример
- Доход клиента выше среднего по городу?
- Цвет фрукта - зеленый?
- Вещественные
- Dj = R
- Примеры
- Возраст
- Площадь квартиры
- Количество звонков в колл-центр
- Категориальные признаки
- Dj - неупорядоченное множество
- значения нельзя сравнивать!
- Примеры
- цвет глаз
- Город
- Образование
- Порядковые признаки
- Частный случай категориальных признаков
- Dj - упорядоченное множество
- Примеры
- Роль в фильме (первого плана, второго плана, массовка)
- Тип населенного пункта
- Образование (может быть неупорядоченным)
- Множествозначные признаки
- (set-valued)
- Dj - множество всех подмножеств некоторого множеста
- Примеры
- Какие фильмы посмотрел пользователь
- Какие слова входят в текст
-
Проблемы
- Выбросы
- Значения признаков, непохожие на большинство
- Могут сильно мешать поиску закономерности
- Распределение признака
- Признаки могут иметь распределение, которое мешает работе с ними
- Примеры возникновения проблемы
- Недостаточно данных по одному из признаков
- Резко отличающееся значение признака для определенных объектов, которые образуют длинный "хвост" в распределении
-
Линейные модели
-
Линейные модели в задачах регрессии
-
Обучение с учителем
- X - пространство объектов
- Y - пространство ответов
- x = (x1, ..., xd) - признаковое описание
- X = (xi, yi)^l i=1- обучающая выборка
- a(x) - алгоритм, модель
- Q(a, X) - функционал ошибки алгоритма а на выборке Х
- Обучение a(x) = argminQ(a, X) a на А
- Задача регрессии Y = R
-
Вопросы
- Функционал ошибки?
- Среднеквадратичная ошибка
- не подходит
- Модуль отклонения |a(x) - y|
- негладкая функция
- нет производной в нуле
- использовать градиентные функции оптимизации затруднительно
- квадрат отклонения (a(x) - y)**2
- гладкая функция
- можно минимизировать градиентными методами
- квадрат отклонения ответа алгоритма от истинного ответа, а(xi-того) и от y-i-того. И суммируем, точнее усредняем, эти квадраты отклонений по всей обучающей выборке.
- Q(w, X), Где w - вещественный вектор, получаем не функционал, а функцию
- Обратите внимание, что подставляя сюда линейную модель, то есть вместо a(x) подставляя скалярное произведение w на xi-тое, мы получаем уже не функционал, а функцию, поскольку теперь наша ошибка зависит не от некой функции a(x), а от вектора весов w. И оптимизировать нужно именно по этому вектору весов, что уже гораздо проще.
- Семейство алгоритмов?
- Добавим константный признак
- по сути это скалярное произведение вектора весов на вектор признаков.
- Метод обучения?
- Обучение линейной регрессии
- среди признаков есть константный признак, значения которого на всех объектах равны 1, благодаря этому нам не нужно включать константные члены в нашу формулу.
- Матрица "объекты-признаки"
- l строк - количество объектов
- d стобцов - количество признаков
- В i-том j-том элементе этой матрицы записаны значения j-того признака на i-том объекте.
- Таким образом, мы получаем что в i-той строке этой матрицы записаны все признаки i-того объекта, а в j-том столбце этой матрицы записаны значения j-того признака на всех объектах.
- Вектор ответов
- Среднеквадратичная ошибка
- когда мы умножаем матрицу «объекты–признаки» X на вектор весов w, мы получаем вектор размера l, то есть такого размера, сколько у нас всего объектов, и i-тый элемент этого вектора — это и есть прогноз нашей модели
- скалярное произведение вектора весов на значение признаков на i-том объекте.
- Вычитаем из этого вектора вектор y, получаем отклонение прогнозов алгоритма от истинных ответов, и, вычисляя евклидову норму, возводя ее в квадрат и после этого поделив на число объектов, получаем среднеквадратичную ошибку.
- Аналитическое решение
- Если у вас тысячи или десятки тысяч признаков, обращение будет занимать очень много времени.
- Также при этом обращении могут возникнуть численные проблемы, если матрица X транспонированное на X устроена не очень хорошо.
- Поэтому гораздо более простым и удобным подходом является оптимизационный.
- Оптимизация
- Есть и другие подходы. Например, можно инициализировать случайными и не очень большими числами. Далее в цикле мы повторяем следующие операции. На t-той итерации цикла мы берем приближение с предыдущей итерации, то есть wt − 1, и вычитаем из него вектор градиента в этой точке, умноженный на некоторый коэффициент ηt, который называет шагом. Почему мы именно так изменяем вектор весов? Мы обсуждали в прошлом курсе, что градиент показывает в сторону наискорейшего возрастания функции, а антиградиент, то есть вектор градиента с минусом, показывает в сторону наискорейшего убывания. Таким образом, если мы хотим как можно сильнее уменьшить функционал ошибки Q, нам нужно изменять вектор весов именно в сторону антиградиента, что здесь и происходит.
- Коэффициент ηt (или шаг) нужен для того, чтобы регулировать, насколько далеко мы шагаем в сторону антиградиента. Дело в том, что оказывается оптимальным шагать не очень сильно, мы увидим с вами это чуть дальше. Эти градиентные шаги повторяются до тех пор, пока не наступит сходимость.
- Сходимость можно определять по-разному. В нашем случае мы ее определяем как ситуацию, в которой векторы весов от шага к шагу начали меняться не слишком сильно.
- То есть норма отклонения вектора весов на текущем шаге от вектора весов на предыдущем шаге, должна отличаться не более, чем на ε.
- В этом случае мы завершаем градиентный спуск.
- Если же изменение довольно большое, мы продолжаем его.
- Есть и другие подходы к определению сходимости. Например, можно сравнивать значение функционала ошибки между текущей итерацией и предыдущей, или использовать еще какие-то способы.
- Градиентный спуск для линейной регрессии
- Случай парной регрессии
- В случае парной регрессии признак всего один, а линейная модель выглядит следующим образом:
- a(x) = w1*x + w0
- где w1 и w0 — два параметра.
- Среднеквадратичная ошибка
- Для нахождения оптимальных параметров будет применяться метод градиентного спуска, про который уже
было сказано ранее. Чтобы это сделать, необходимо сначала вычислить частные производные функции ошибки
- Демонстрация градиентного спуска в случае парной регрессии
- Следующие два графика демонстрируют применение метода градиентного спуска в случае парной регрессии. Справа изображены точки выборки, а слева — пространство параметров. Точка в этом пространстве
обозначает конретную модель.
- График зависимости функции ошибки от числа произведенных операции выглядит следующим образом
- Выбор размера шага в методе градиентного спуска
- Очень важно при использовании метода градиентного спуска правильно подбирать шаг. Каких-либо конкретных правил подбора шага не существует, выбор шага — это искусство, но существует несколько полезных закономерностей.
- Если длина шага слишком мала, то метод будет неспеша, но верно шагать в сторону минимума. Если же взять размер шага очень большим, появляется риск, что метод будет перепрыгивать через минимум. Более того, есть риск того, что градиентный спуск не сойдется.
- Имеет смысл использовать переменный размер шага: сначала, когда точка минимума находится еще далеко, двигаться быстро, а позже, спустя некоторое количество итерации — делать более аккуратные шаги.
- Один из способов задать размер шага следующий
- ηt = k/t
- где k — константа, которую необходимо подобрать, а t — номер шага
- Случай многомерной линейной регрессии
- В случае многомерной линейной регрессии используется тот же самый подход — необходимо решать задачу
минимизации
- Стоит отметить, что вектор Xw − y, который присутствует в данном выражении, представляет собой вектор
ошибок.
- Стохастический градиентный спуск
- Недостатки обычного метода градиентного спуска
- в случае большой выборки даже одна итерация метода градиентного спуска будет производиться долго
- Идея стохастического градиентного спуска основана на том, что в сумме в выражении для j-компоненты градиента i-ое слагаемое указывает то, как нужно поменять вес wj, чтобы качество увеличилось для i-го
объекта выборки.
- Вся сумма при этом задает, как нужно изменить этот вес, чтобы повысить качество для всех объектов выборки.
- В стохастическом методе градиентного спуска градиент функции качества вычисляется только на одном случайно выбранном объекте обучающей выборки. Это позволяет обойти вышеупомянутый недостаток обычного градиентного спуска.
- Таким образом, алгоритм стохастического градиентного спуска следующий. Сначала выбирается начальное приближение
- w0 = 0
- Далее последовательно вычисляются итерации wt: сначала случайным образом выбирается объект xi из обучающей выборки X и вычисляется вектор градиента функции качества на этом объекте, а следующее
приближение получается из предыдущего вычитанием умноженного на шаг ηt полученного вектора:
- Сходимость стохастического градиентного спуска
- Показательно посмотреть на графики сходимости градиентного спуска и стохастического градиентного спуска. В обычном градиентном спуске на каждом шаге уменьшается суммарная ошибка на всех элементах обучающей выборки. График в таком случае обычно получается монотонным.
- Напротив, в стохастическом методе весовые коэффициенты меняются таким образом, чтобы максимально уменьшить ошибку для одного случайно выбранного объекта. Это приводит к тому, что график выглядит
пилообразным, то есть на каждой конкретной итерации полная ошибка может как увеличиваться, так и уменьшаться. Но в итоге с ростом номера итерации значение функции уменьшается.
- Особенности стохастического градиентного спуска
- каждый шаг выполняется существенно быстрее шага обычного градиентного метода, а также не требуется постоянно хранить всю обучающую выборку в памяти.
- Это позволяет использовать для обучения выборки настолько большие, что они не помещаются в память компьютера
- Стохастический градиентный спуск также можно использовать для онлайн-обучения, то есть в ситуации, когда на каждом шаге алгоритм получает только один объект и должен учесть его для коррекции модели.
-
Пример
- Предсказание прибыли магазина
- Прибыль - вещественная переменная
-
Линейная классификация
-
Задача бинарной классификации
- Выбрать функционал (функцию) ошибки
- Построить семейство алгоритмов
- Линейный классификатор
- Выражение hw, xi = 0 является уравнением некоторой плоскости в пространстве признаков.
- При этом для точек по одну сторону от этой плоскости скалярное произведение hw, xi будет положительным, а с другой — отрицательным.
- Равенство нулю скалярного произведения означает, что угол между этими векторами = 90 градусов, то есть что они перпендикулярны. Получается, что точки, удовлетворяющие этому уравнению — это все векторы, ортогональные вектору весов.
- Таким образом, линейный классификатор проводит плоскость в пространстве признаков и относит объекты по разные стороны от нее к разным классам.
- Отступ является величиной, определяющей корректность ответа.
- Если оступ больше нуля Mi > 0, то классификатор дает верный ответ для i-го объекта, в ином случае — ошибается.
- Причем чем дальше отступ от нуля, тем больше уверенность как в правильном ответе, так и в том, что алгоритм ошибается. Если отступ для некоторого объекта отрицательный и большой по модулю, это
значит, что алгоритм неправильно описывает данные: либо этот объект является выбросом, либо алгоритм не пригоден для решения данной задачи
- если мы возьмем модуль этого скалярного произведения и отнормируем его, то есть поделим на норму вектора весов, то это выражение будет равно расстоянию от точки x до гиперплоскости, которая задается вектором нормали, вектором весов w. Получается, что линейный классификатор сначала измеряет расстояние от точки до гиперплоскости со знаком и дальше смотрит лишь на знак, то есть на то, с какой стороны от гиперплоскости лежит эта точка.
- Ввести метод обучения
- Функции потерь в задачах классификации
- Пороговая функция потерь
- В случае линейной классификации естественный способ определить качество того или иного алгоритма —
вычислить для объектов обучающей выборки долю неправильных ответов
- С помощью введенного ранее понятия отступа можно переписать это выражение для случая линейной классификации в следующем виде
- Функция, стоящая под знаком суммы, называется функцией потерь. В данном случае это пороговая функция потерь, график которой в зависимости от отступа выглядит следующим образом:
- Такая функция является разрывной в точке 0, что делает невозможным применение метода градиентного спуска. Можно, конечно, использовать методы негладкой оптимизации, о которых шла речь в прошлом курсе,
но они сложны в реализации.
- Оценка функции потерь (L)
- Примеры оценок функции потерь
- Логистическая функция потерь
- используется в логистической регрессии
- функционал ошибки
- Получившееся выражение является гладким, а, следовательно, можно использовать, например, метод градиентного спуска
- Следует обратить внимание, что в случае, если число ошибок стало равно нулю, все равно в ходе обучения алгоритма линейной классификации будут увеличиваться отступы, то есть будет увеличиваться уверенность
в полученных результатаx
- Экспоненциальная функция потерь
- Кусочно-линейная функция потерь
- используется в методе опорных векторов
- Графики различных функций потерь: пороговая (красная линия), экспоненциальная (синяя), логистическая (оранжевая) и кусочно-линейная (серая)
-
Линейный коэффициент корреляции r-Пирсона
- применяется для исследования взаимосвязи двух переменных, измеренных в метрических шкалах на одной и той же выборке. Он позволяет определить, насколько пропорциональная изменчивость двух переменных.
- в пределах от минус единицы до плюс единицы.
-
условия
- Исследуемые переменные X и Y должны быть распределены нормально.
- Исследуемые переменные X и Y должны быть измерены в интервальной шкале или шкале отношений.
- Количество значений в исследуемых переменных X и Y должно быть одинаковым.
-
Слабые стороны
- Неустойчивость к выбросам
- можно определить только силу линейной взаимосвязи между переменными, другие виды взаимосвязей выявляются методами регрессионного анализа.
-
Формула
-
Статистический взгляд
-
Задача регрессии
- История
- 19век. Френсис Гальтон
- «Регрессия к середине в наследственности роста»
- зависимость между средним ростом детей и средним ростом их родителей
- отклонение роста детей от среднего составляет примерно 2/3 отклонения роста родителей от среднего
- Машина или доска Гальтона
- Это механическая машина, в которой сверху в центральной части находятся шарики. Когда открывается заслонка, шарики начинают постепенно сыпаться вниз, ударяясь о штырьки, которые расположены на одинаковом расстоянии друг от друга. При каждом соударении шарика со штырьком вероятности того, что он упадет налево и направо от штырька, равны. Постепенно шарики начинают собираться в секциях внизу в гауссиану, или плотность нормального распределения.
- Чаще всего под регрессией понимают минимизацию среднеквадратичной ошибки: квадратов отклонений откликов y от их предсказанных значений a(x).
- Метод наименьших квадратов (МНК)
- Для линейной регрессии задача имеет аналитическое решение.
- Сейчас можно численно минимизировать не только среднеквадратичную ошибку, но и, например, среднюю абсолютную, то есть сумму модулей отклонений нашей модели от отклика
- Такая задача является частным случаем класса задач квантильной регрессии.
- Метод максимизации правдоподобия
- Пример
- Распределение Пуассона
- Распределе́ние Пуассо́на — распределение дискретного типа случайной величины, представляющей собой число событий, произошедших за фиксированное время, при условии, что данные события происходят с некоторой фиксированной средней интенсивностью и независимо друг от друга.
- lambda — математическое ожидание случайной величины (среднее количество событий за фиксированный промежуток времени)
- C увеличением lambda распределение Пуассона стремится к распределению Гаусса со среднеквадратичным отклонением sigma = lambda**0.5 и сдвигом lambda.
- Общий вид
- Пусть некоторая случайная величина x имеет распределение F(x, θ), X^n — выборка размера n
- Логарифм правдоподобия
- Оценка максимального правдоподобия
- В случае непрерывной случайной величины метод максимального правдоподобия записывается аналогично
- Свойства метода максимального правдоподобия
- Состоятельность, то есть получаемые оценки при увеличении объема выборки начинают стремиться к истинным значениям
- Асимптотическая нормальность
- то есть с ростом объема выборки, оценки максимального правдоподобия все лучше описываются нормальным распределением с средним, равным истинному значению θ, и дисперсией, равной величине, обратной к информации Фишера
- Регрессия как максимизация правдоподобия
- Модель шума
- нормальное распределение
- задача минимизации среднеквадратичной ошибки
- дает оценку максимального правдоподобия для регрессионной функции a(x)
- Этот факт позволяет использовать в задаче с регрессии свойства метода максимального правдоподобия.
Например, используя асимптотическую нормальность, можно определять значимость признаков x^j в модели и делать их отбор. Также можно строить доверительные интервалы для значения отклика на новых объектах,
которых нет в обучающей выборке.
- распределение Лапласа
- Распределение шума не обязательно должно быть нормальным и может быть каким-то другим.
- можно попытаться описать его распределением Лапласа с нулевым средним.
- Формула для функции плотности вероятности такого распределения
- По сравнению с нормальным распределением, распределение Лапласа имеет более тяжелые хвосты, то есть для него более вероятны большие значения ε
- если моделировать шум распределением Лапласа, то наблюдения могут сильнее отклоняться от выбранной модели
- За счет этого получается решение, которое более устойчивое к выбросам
- Оказывается, что если шум действительно описывается распределением
Лапласа, то к оценке максимального правдоподобия приводит минимизация средних абсолютных отклонений
- МНК
- Метод наименьших квадратов
- ОМП
- Оценка максимального правдоподобия
- Регрессия как оценка среднего
- Среднеквадратичная ошибка
- Если a — константа
- нет признаков
- то есть наилучшая константа, которая аппроксимирует значение y в смысле среднеквадратичной ошибки — это математическое ожидание
- Если a(x) — произвольная функция признаков x
- минимум будет доставлять условное математическое ожидание
- оценка, получаемая при минимизации среднеквадратичной ошибки
- является лучше аппроксимацией условного математического ожидания E(y|x). В случае линейной регрессии,
то есть когда отклик моделируется линейной комбинацией <w, x_i>
- выражение <w∗, x_i> является наилучшей линейной аппроксимацией условного математического ожидания E(y|x)
- По графику видно, что одинаково штрафуются отклонения предсказания как в большую, так и в меньшую сторону от истинного значения y_i. Поэтому не удивительно, что функция, которая доставляет минимум функции, представляет собой какое-то среднее
- Дивергенции Брегмана
- Свойства
- Неотрицательность
- для всех p, q. Это следствие выпуклости F.
- Выпуклость
- является выпуклой по первому аргументу, но не обязательно по второму аргументу
- Линейность
- если мы думаем о расстоянии Брегмана как об операторе функции F, то оно линейно относительно неотрицательных коэффициентов.
- Двойственность
- функция F имеет выпуклое сопряжение
- Среднее как минимизатор
- ключевой результат о расхождениях Брегмана состоит в том, что при заданном случайном векторе средний вектор минимизирует ожидаемое расхождение Брегмана от случайного вектора. Этот результат обобщает результат учебника о том, что среднее значение набора минимизирует общую квадратичную ошибку для элементов набора. Этот результат был доказан для векторного случая (Banerjee et al. 2005) и распространен на случай функций / распределений (Frigyik et al. 2008). Этот результат важен, поскольку он дополнительно оправдывает использование среднего как представителя случайного набора, особенно при байесовской оценке.
- Дивергенции Брегмана порождаются любой непрерывной дифференцируемой выпуклой функцией ϕ
- Среднеквадратичная ошибка является частным случаем дивергенции Брегмана
- Минимизируя любую дивергенцию Брегмана, мы получаем оценку для условного математического ожидания
- Пример
- Этот результат уже является несколько странным, поскольку в семействе дивергенций Брегмана можно найти, в том числе, несимметричные относительно y функции. Такие функции больше штрафуют за отклонение модели в большую или меньшую сторону. Это результат может быть несколько контринтуитивным и получен не так давно.
- Средняя абсолютная ошибка и несимметричная абсолютная ошибка
- не входит в семейство дивергенций Брегмана. При ее минимизации получается оценка не условного математического ожидания, а оценка условной медианы
- Несимметричная абсолютная функция ошибки («несимметричность» определяется параметром τ ):
- имеет в некотором смысле наклоненный график по сравнению с графиком симметричной абсолютной ошибки
- При минимизации такого функционала получается лучшая оценка для соответствующего условного квантиля
- Регуляризация
- Переобучение регрессионных моделей
- Варианты решения проблемы
- Взять больше данных
- Выбрать более простую модель
- меньше признаков
- Использовать регуляризацию
- L2-регуляризатор
- L1-регуляризатор
- пунктир - МНК
- Дает смещенные оценки коэфициентов, но ошибка может быть меньше за счет меньшей дисперсии
- Смещение и дисперсия
- математическое ожидание квадрата ошибки регрессии представляет собой сумму трех компонент
- От выбора модели зависит квадрат смещения и дисперсия оценки, но не шум, который является свойством данных, а не модели.
- Метод наименьших квадратов дает оценки, которые имеют нулевое смещение.
- Регуляризация позволяет получить смещенные оценки с меньшим
E (a∗(x) − y)^2
за счет того, что у этой оценки будет меньше дисперсия.
- Следующая аналогия позволяет лучше понять баланс между смещением и дисперсией. При стрельбе по мишени среднее число набранных очков зависит от положения средней точки попадания и разбросом относительно этого среднего.
- Переобучению линейных моделей соответствует стрельба без смещения, но с огромным разбросом. И часто оказывается, что можно набрать больше очков, стреляя не совсем в цель, то есть со смещением, но зато более точно. Именно это и позволяет добиться регуляризация.
- Решение задач гребневой регрессии и лассо
- В байесовской статистике гребневая регрессия соответствует заданию нормального априорного распределения на коэффициенты линейной модели, а метод лассо — заданию Лапласовского априорного распределения.
- Задача гребневой регрессии имеет аналитическое решение
- Для решения задачи лассо аналитического решения не существует, однако есть очень эффективный численный способ получения решения
- Логистическая регрессия
- Логистическая регрессия
- метод обучения с учителем в задаче бинарной классификации Y = {0, 1}
- Логистическая регрессия применяется для прогнозирования вероятности возникновения некоторого события по значениям множества признаков.
- это статистическая модель, используемая для прогнозирования вероятности возникновения некоторого события путём его сравнения с логистической кривой. Эта регреcсия выдаёт ответ в виде вероятности бинарного события (1 или 0).
- Метод линейного дискриминанта Фишера
- Метод линейного дискриминанта Фишера, один из самых старых методов классификации, заключается в минимизации среднеквадратичной ошибки
- если для некоторого объекта <w, xi> > 0.5, объект относится к первому классу y = 1, в ином случае — к нулевому y = 0.
- На самом деле, хочется предсказывать не просто метки классов, а вероятности того, что объекты относятся к какому-то из классов
- не получится: получаемая линейная комбинация факторов не обязательно лежит на отрезке от 0 до 1.
- Пример
- По обучающей выборке была настроена модель линейной регрессии. Получается, что при задолженности 2000$ вероятность просрочить платеж по кредиту равна 0.2, при задолженности 500$ — нулю, а при меньших значениях и вовсе отрицательная. Также, если задолженность больше 10000$, вероятность просрочки будет больше 1. Не понятно, как интерпретировать этот результат.
- Обобщенные линейные модели (GLM)
- Обобщенная линейная модель - это обобщение линейной регрессионной модели, позволяющее
- оценивать нелинейные воздействия наряду с линейными
- включать категориальные предикторные переменные, наряду с непрерывными
- зависимая переменная может иметь как нормальное распределение, так и распределение, отличное от нормального (например, гамма, Пуассона, биномиальное и.т.д.)
- Обобщенные линейные модели и стандартные линейные модели представляют зависимую переменную в виде суммы среднего значения мю и случайной величины e
- Однако если в линейных моделях среднее значение представляется линейной комбинацией предикторов
- то в обобщенных линейных моделях ожидаемые значения отклика представляют собой линейную комбинацию предикторов, которые связаны с зависимой переменной через функцию связи:
- Функция связи
- Функция связи используется в откликах модели, когда предполагается нелинейная связь зависимой переменной с предикторами.
- Вводится предположение о принадлежности переменной отклика экспоненциальному семейству распределений – широкому классу распределений, включающему в себя нормальное распределение, распределение Пуассона, гамма-распределение, обратное Гауссовское, биномиальное, экспоненциальное и другие распределения.
- Каждому из распределений соответствует естественная функция связи, называемая канонической (canonical link functions).
- Виды
- Тождественная
- Лог-связь
- Логит-связь
- Пробит-связь
- Дополняющая лог-лог-связь
- Лог-дополнение
- Задача линейной регрессии
- В задаче бинарной классификации в качестве g^−1 используется сигмоида
- В одномерном случае значение параметр w0 сигмоиды определяет положение её центра на числовой оси, а w1 — форму это сигмоиды
- Если w1 > 0, сигмойда возрастающая
- Если w1 < 0, сигмоида убывающая
- Чем больше по модулю значение w1, тем круче наклон сигмоиды в области ее середины.
- Предсказание вероятностей
- Если использовать сигмоиду, в обобщенной линейной модели в задаче логистической регрессии, результат будет более адекватным:
- Вероятность π(x) ∈ [0, 1], как и требуется.
- На краях области значений x функция (вероятность) π(x) слабо меняется при небольших изменениях x, когда как существенно изменяется, если x находится в середине диапазона своих значений.
- Последнее свойство является весьма полезным. Например, в уже рассмотренной задаче при размере задолженности в районе 2000$ оценка вероятности просрочки платежа сильно изменяется при увеличении или
уменьшении задолженности на 100$. С другой стороны при размере задолженности в 500$ увеличение задолженности на 100$ приводит только к незначительным изменениям требуемой оценки.
- Оценка параметров
- По функции π(x) можно восстановить функцию g, которая фигурирует в определении обобщенной линейной модели
- Отношение, стоящее под логарифмом, называется риском, а весь логарифм называется «логит»
- Именно поэтому метод называется логистической регрессией: логит приближается линейной комбинацией факторов.
- Правдоподобие обучающей выборки
- Настройка модели происходит методом максимизации правдоподобия L(X). Удобнее однако не максимизировать правдоподобие, а минимизировать минус логарифм от правдоподобия
- Такой функционал также имеет названия log-loss, кросс-энтропия и другие.
- Если изменить метку нулевого класса на −1, то получится логистическая функция потерь в таком виде, в котором она встречалась в курсе до этого
- Решение задачи максимизации правдоподобия
- Задача максимизации правдоподобия в логистической регрессии очень хорошо решается численно, поскольку правдоподобие — выпуклая функция, а следовательно, она имеет единственный глобальный максимум. Кроме
того, ее градиент и гессиан могут быть хорошо оценены.
- Если объекты из разных классов линейно разделимы в пространстве признаков, возникает проблема переобучения: сигмоида вырождается в «ступеньку».
- Например, такая ситуация возникает, если в уже упомянутой задаче оценки вероятности вернуть задолженность обучающая выборка такова, что все клиенты с задолженностью менее 1300$ вернули платеж вовремя, а все клиенты с задолженностью более 1300$ — нет.
- В этом случае максимизация правдоподобия приводит к тому, что ||w|| → ∞. В таких случаях необходимо использовать методы регуляризации, например L1 или L2 регуляризатор.
- Предсказание отклика
- Вероятности, которые дает логистическая регрессия, можно использовать для классификации, то есть для предсказания итоговых меток классов. Для этого выбирается порог p0 и объект относится к классу 1 только
в случае π(x) > p0. В остальных случаях объект относится к классу 0.
- Порог p0 не следует выбирать всегда равным 0.5, как это может показаться из интуитивных соображений. Его необходимо подбирать для каждой задачи отдельно таким образом, чтобы обеспечить оптимальный баланс между точностью и полнотой классификатора.
-
Практические рекомендации
-
Масштабирование признаков
- Пример
- Минимум в точке 0, 0
- При поиске этого минимума методом градиентного спуска с начальной точкой w = (1, 1), вектор антиградиента будет иметь координаты (−2, −2).
- Это вектор проходит через точку минимума, а значит при правильно подобранном размере шага, уже на первом шаге градиентного
спуска можно попасть строго в точку минимума. Градиентный спуск будет хорошо работать на этой функции.
- Изменим функцию
- В этом случае линии уровня представляют собой эллипсы, сильно вытянутые вдоль оси x
- Если запустить градиентный спуск из точки w = (1, 1), вектор антиградиента в этой точке будет иметь координаты (−2, −200).
Вектор будет смотреть почти строго вниз и проходить мимо точки минимума функции. Более того, существует шанс на следующей итерации уйти еще дальше от минимума.
- Итак, градиентный спуск работает хорошо, если линии уровня функции похожи на круги
- В этом случае, откуда бы вы не начали, вектор градиента будет всегда смотреть в сторону минимума функции, а итеративный процесс будет сходиться довольно быстро
- Если же линии уровня похожи на эллипсы, направление антиградиента будет слабо совпадать с направлением в сторону минимума функции.
- Градиентный спуск будет делать много лишних шагов. Сходимость будет медленная, и более того, существует риск расхождения итеративного процесса, если размер шага будет подобран неправильно.
- Масштабирование выборки
- Пусть требуется предсказать, будет ли выдан грант по заявке. Заявка характеризуется двумя признаками — сколько уже успешных заявок было у данного заявителя и год рождения заявителя. Масштабы этих двух
признаков существенно отличаются: количество одобренных грантов обычно меряется единицами, а год рождения — тысячами. Из-за такого различия в масштабе линии уровня функции будут выглядеть скорее как
эллипсы, а не как круги.
- Если масштабирование не было произведено, при использовании метода градиентного спуска будет сделано много лишних шагов, а также существует риск расхождения итеративного процесса.
- В таком случае, чтобы без проблем пользоваться градиентным спуском, признаки необходимо привести к одному масштабу, то есть отмасштабировать
- Способы масштабирования
- Стандартизация или Нормализация
- Для начала необходимо вычислить вспомогательные величины: средние значения признаков и стандартные отклонения
- Чтобы произвести стандартизацию признака, достаточно вычесть из него его среднее значение и разделить на его стандартное отклонение
- После того, как это будет выполнено для всех признаков, сдвиги и различия в масштабах будут убраны
- Масштабирование на отрезок [0, 1]
- В этом случае также необходимо вычислить вспомогательные величины: максимальное и минимальное значение каждого признака на обучающей
выборке:
- После этого значение каждого признака на конкретном объекте преобразовывается следующим образом:
- Тогда минимальное значение признака отображается в ноль, а максимальное — в 1, то есть признаки масштабируются на отрезок [0, 1].
-
Нелинейные зависимости
- Нелинейная задача регрессии
- Пусть решается задача регрессии с одним признаком, отложенным по оси x. По этому признаку требуется восстановить целевую переменную y.
- Как можно в этом убедиться, непосредственное применение линейной модели не дает желаемых результатов и плохо подходит для решения данной задачи. Зависимость y от x явно нелинейная.
- Поэтому, кроме признака x, также рассматриваются признаки x**2, x**3 и x**4. Если построить линейную модель на этих признаках, в ней уже будет 5 коэффициентов.
- С помощью этой модели уже можно почти идеально описывать данные: она очень хорошо решает задачу, а также не переобучается.
Фактически был совершен переход к новому признаковому пространству из четырех признаков вместо одного, в котором была построена линейная модель. А на исходном пространстве эта модель уже нелинейная
и отлично описывает данные.
- Задача классификации с нелинейной границей
- задача классификации с двумя признаками, которые отложены по осям.
- Видно, что разделяющая поверхность здесь не является линейной. Применение линейного классификатора дает следующий результат:
- Но если кроме признаков x1 и x2 рассмотреть признаковое пространство, которое также включает в себя признаки x1x2, x_1**2 и x_2**2, результат будет совершенно иной: разделяющая поверхность будет иметь форму окружности и очень хорошо разделять красные и синие точки.
- Здесь также в новом пространстве была построена линейная модель, которая является нелинейной в исходном признаковом пространстве.
- Спрямляющее пространство
- Спрямляющим пространством признаков называется такое пространство, в котором задача хорошо решается линейной моделью.
- Может быть построено
- Через добавление квадратичных признаков, то есть когда к исходным признакам добавляются их квадраты и попарные произведения:
- Следует особо отметить, что в таком случае число признаков увеличивается на порядок. Если объектов не слишком много, существует риск переобучения в таком большом признаковом пространстве.
- Через добавление полиномиальных признаков:
- Этот способ следует использовать только, когда объектов достаточно много, то есть риск переобучения минимален, а также заранее известно, что зависимости очень нелинейные
- Через логарифмирование (или любые другие нелинейные функции):
- Ранее приводился пример про стоимость книг в интернет-магазине. В данном случае признаком будет стоимость книги, значение которого для большинства книг составит несколько сотен рублей. Но существуют и встречаются весьма часто очень дорогие книги, так что распределение этого признака будет иметь «тяжелый правый хвост». Известно, что линейные модели плохо применимы в таком случае и
работают гораздо лучше, если распределение признаков близко к нормальному. Чтобы распределение признака «с хвостом» сделать более близким к нормальному, нужно прологарифмировать этот признак.
-
Работа с категориальными признаками
- Примеры категориальных признаков
- • Город
- • Цвет
- • Тарифный план
- • Марка автомобиля
- Особенность
- Особенность категориальных признаков состоит в том, что это элементы некоторого неупорядоченного множества, и нельзя говорить, что какое-то значение больше или меньше другого. Можно только сравнивать их на равенство. Но в линейных моделях нужно брать значение признака, умножать на вес, а потом складывать с другими числами, и эту операцию нельзя делать со значениями категориальных признаков. Категориальные
признаки нужно сначала преобразовать, чтобы их можно было использовать в линейных моделях.
- Бинарное кодирование
- Один из наиболее популярных подходов к кодированию категориальных признаков — бинарное кодирование.
Далее будут использоваться следующие обозначения. Пусть j-ый признак — категориальный и принимает n возможных значений
- c1, ..., cn.
- Пусть также fj (x) — значение этого признака на объекте x. Чтобы закодировать данный признак, вводятся n новых бинарных признаков:
- b_1(x), ..., b_n(x),
- причем значение бинарного признака bi равно единице только в том случае, если на данном объекте x значение категориального признака fj(x) равно ci
- bi(x) = [fj (x) = ci]
- Пример
- Пусть в качестве признака рассматривается цвет, причем он может принимать три значения: синий, зеленый или красный. Дано три объекта x1, x2, x3, на которых значения категориального признака:
- fj (x1) = синий, fj (x2) = красный, fj (x3) = синий.
- Поскольку категориальный признак принимает 3 значения, потребуется 3 бинарных признака, чтобы его закодировать. В результате получается следующая матрица (каждому объекту соответствует своя строка, а каждому столбцу — свое значение признака):
- Новые значения
- Часто возникает следующая проблема. При кодирования тестовой выборки может встретиться объект, на котором категориальный признак принимает новое (n + 1)-е значение, которое до этого не встречалось в
обучающей выборке. В этом случае логичным подходом будет не добавлять новый признак (поскольку это сложно реализуется), а просто приравнять к нулю все существующие признаки. Действительно, по смыслу бинарных признаков (принимает ли категориальный признак значение ci
, i ∈ {1, 2, ..., n}), каждый из них в таком случае должен равняться нулю.
-
Несбалансированные данные
- Примеры
- Предсказание резких скачков курса доллара. Если определение резкого скачка подразумевает сильные изменения, то примеров таких изменений за всю историю — единицы, но при этом практически каждый
день — отрицательный пример, то есть пример, когда такого скачка не было. Выборка в этом случае будет очень несбалансированной.
- Медицинская диагностика (больных, как правило, сильно меньше, чем здоровых)
- Обнаружение мошеннических транзакций (которых существенно меньше, чем обычных транзакций)
- Классификация текстов и так далее.
- Задача называется несбалансированной, если объектов одного класса существенно меньше, чем объектов остальных классов.
- Проблема
- Основная проблема, связанная с несбалансированными выборками, состоит в том, что классификаторы минимизируют число неправильных ответов и никак не учитывают цены ошибок. Может возникнуть ситуация, когда выгоднее отнести все объекты к большему классу, не пытаясь как-то выделить объекты маленького класса. Другими словами, при работе с несбалансированными выборками классификаторы получаются очень
плохие с точки зрения точности или полноты.
- Undersampling
- основная идея состоит в том, что часть объектов из большого класса выбрасываются из выборки.
- В этом случае необходимо выкинуть большую часть 1го класса и половину объектов 3го класса. Размеры классов примерно сравняются.
- При этом то, сколько именно объектов каждого класса выбрасывается — это гиперпараметр, который имеет смысл настраивать по отложенной выборке или по кросс-валидации.
- Oversampling
- Второй подход, oversampling, противоположен предыдущему: в данном случае объекты маленьких классов дублируются, чтобы выравнять соотношение классов.
- В предыдущем примере 5 раз необходимо продублировать объекты 2го класса, а также продублировать случайную половину 3го класса. В этом случае размеры классов тоже выравняются. То, на сколько будет
увеличен каждый класс — тоже гиперпараметр.
- Следует обратить внимание на одну особенность. Если задача решается на исходной выборке, то среднеквадратичная ошибка выглядит:
- Но если делается oversampling, то есть дублируются какие-нибудь объекты, некоторые слагаемые будут входить в эту сумму несколько раз. Таким образом, вместо реального дублирования объектов, можно выставить соответствующие веса νi
- Стратификация
- Еще одна проблема, с которой можно столкнуться при работе с несбалансированными выборками, заключается в том, что при проведении кросс-валидации исходная выборка разбивается на k блоков примерно одинаковой длины. При этом, если выборка несбалансированная, может получиться ситуация, что в некоторые блоки объекты какого-то класса не попадут вообще. Такая ситуация крайне неприятна: при обучении на
этом блоке получается классификатор, который никогда не видел один из классов.
- Чтобы с этим бороться необходимо использовать стратификацию, то есть делать так, чтобы распределение классов в каждом блоке примерно совпадало с распределением классов в исходной выборке. В этом случае
будет гарантироваться, что объекты каждого из классов будут представлены в каждом из блоков разбиения.
-
Многоклассовая классификация
- В этом разделе рассказывается, как решать задачи многоклассовой классификации с помощью линейных моделей. Как следует из названия, в задачах многоклассовой классификации K возможных классов. Требуется
научиться отличать каждый класс от всех остальных.
- ONE-VS-ALL
- Этот метод можно применить к задаче многоклассовой классификации
- Такой подход называется «один против всех». Как следует из названия, для каждого класса будет строиться свой бинарный классификатор.
Задачей этого классификатора будет отделение данного класса от всех остальных.
- Формально говоря, будут решаться K задач бинарной классификации. Для каждой (например k-ой) из этих задач будет весьма специфичная выборка:
- в которой объекты xi остаются такими же, а ответы становятся бинарными. Будет построен некоторый линейный классификатор, который отделяет k-ый класс от всех остальных:
- Ранее уже было сказано, что уверенность классификатора в своем решении определяется значением скалярного произведения. Если знак скалярного произведения положительный, то чем больше его модуль, тем
больше классификатор уверен в том, что данный конкретный объект относится к данному классу. Поэтому для построения многоклассового классификатора можно использовать следующий алгоритм:
- который будет возвращать тот класс k, для которого уверенность соответствующего классификатора (то есть значение соответствующего скалярного произведения) больше всего
- Матрица ошибок
- Для анализа того, насколько хорошо работает многоклассовый классификатор, удобно использовать матрицу ошибок. Каждая строка этой матрицы соответствует тем объектам, которые классификатор отнес к тому или иному классу, а каждый столбец соответствует объектам, которые на самом деле относятся к тому или иному классу.
- Например, на пересечении первой строки и второго столбца стоит число q12, которое показывает то, сколько объектов второго класса многоклассовый классификатор отнес к первому. Эта матрица позволяет понять, какие классы перепутываются чаще всего. Также можно измерять уже известные метрики качества, например:
- Кроме того, можно считать точность и полноту (а также F-меру) для задачи отделения того или иного класса от всех остальных классов. Если точность и полнота будут таким образом вычислены для каждого из классов, они могут быть позднее усреднены, чтобы получить агрегированные оценки.
-
Проблема переобучения и борьба с ней
-
Пример: проблема переобучения в задачах классификации
- Допустим при решении задачи классификации был построен некоторый алгоритм, например линейный классификатор, причем доля ошибок на объектах из обучающей выборки была равна 0.2, и такая доля ошибок
является допустимой.
- Но поскольку алгоритм не обладает обобщающей способностью, нет никаких гарантий, что такая же доля ошибок будет для новой выборки.
- Вполне может возникнуть ситуация, что для новой выборки ошибка
станет равной 0.9
- Это значит, что алгоритм не смог обобщить обучающую выборку, не смог извлечь из нее закономерности и применить их для классификации новых объектов.
-
Пример: проблема переобучения в задачах линейной регрессии
- Истинная зависимость (зеленая линия) и элементы обучающей выборки (изображены синими точками).
- истинная зависимость является нелинейной и имеет два экстремума.
-
недообучение
- Хороший алгоритм не был построен, поскольку семейство алгоритмов слишком мало и с его помощью невозможно уловить закономерность.
- В этом случае также будет иметь место недообучение. Получилось лучше, но прямая тоже плохо описывает данные.
-
Если семейство алгоритмов — множество многочленов 4-ей степени, то после обучения получившаяся кривая будет достаточно хорошо описывать и обучающую выборку, и истинную зависимость.
- В таком случае качество алгоритма хорошее, но нет идеального совпадения.
-
При использовании многочленов 9-ой степени уже имеет место переобучение
- Восстановленная зависимость дает идеальные ответы на всех объектах обучающей выборки, но при этом в любой другой точке сильно отличается от истинной зависимости. Такая ситуация называется переобучением.
Алгоритм слишком сильно подогнался под обучающую выборку ценой того, что он будет давать плохие ответы на новых точках.
-
Недообучение и переобучение
- недообучение — ситуация, когда алгоритм плохо описывает и обучающую выборку, и новые данные. В этом случае алгоритм необходимо усложнять.
- В случае переобучения, данные из обучающей выборки будут описываться хорошо, а новые данные плохо.
- Выявить переобучение, используя только обучающую выборку, невозможно, поскольку и хорошо обученный, и переобученный алгоритмы будут хорошо ее описывать. Необходимо использовать дополнительные данные.
-
Подходы к выявлению
- Отложенная выборка
- Часть данных из обучающей выборки не участвуют в обучении, чтобы позже проверять на ней обученный алгоритм.
- первая из двух частей будет использоваться для обучения алгоритма
- вторая, тестовая выборка, — для оценки его качества, в том числе для нахождения доли ошибок в задаче классификации, MSE (среднеквадратичной ошибки) в задаче регрессии и других мер качества в зависимости от специфики задачи.
- в какой пропорции производить разбиение
- Если взять тестовую выборку слишком маленькой, оценка качества будет ненадежной, хотя обучающая выборка будет почти совпадать с полной выборкой
- В противоположенном случае, если отложенная часть будет большой, оценка качества будет надежной, но низкое качество алгоритма может свидетельствовать о недостаточном объёме первой, обучающей, части выборки
- Обычно выборку разбивают в соотношениях 70/30, 80/20 или 0.632/0.368.
- Преимуществом отложенной выборки является то, что обучать алгоритм приходится всего лишь один раз, но при этом результат сильно зависит от того, как было произведено разбиение.
- пример
- Например, оценивается стоимость жилья по некоторым признакам. И есть особая категория жилья, например двухэтажные квартиры. И если окажется, что все двухэтажные квартиры, которых немного, попали в отложенную выборку, то после обучения алгоритм будет давать на них очень плохое качество, поскольку в обучающей выборке таких объектов не было.
- Чтобы решить эту проблему, можно использовать следующий подход: построить n различных разбиений выборки на 2 части, для каждого разбиения найти оценку качества, а в качестве итоговой оценки качества работы алгоритма использовать усредненное по всем разбиениям значение.
- Но и в данном случае, поскольку разбиения строятся случайно, нет никаких гарантий, что особый объект хотя бы раз попадет на обучение.
- Стоит использовать там, где выборка большая
- Кросс-валидация
- несколько усложненный метод отложенной выборки
- В этом случае выборка делится на k блоков примерно одинакового размера. Далее по очереди каждый из этих блоков используется в качестве тестового, а все остальные — в качестве обучающей выборки.
- После того, как каждый блок побывает в качестве тестового, будут получены k показателей качества. В результате усреднения получается оценка качества по кросс-валидации.
- какое число блоков использовать
- Если блоков мало, получаются надежные, но смещенные оценки.
- В случае большого числа блоков оценки, наоборот, получаются ненадежными (большой разброс оценок), но несмещенными.
- Нет конкретных рекомендаций относительно выбора k
- Обычно выбирают k = 3, 5, 10
- Чем больше k, тем больше раз приходится обучать алгоритм.
- Поэтому на больших выборках следует выбирать небольшие значения k, так как даже при удалении 1/3 выборки (а она большая) оставшихся данных будет достаточно для обучения.
- Совет: перемешивайте данные в выборке
- Часто данные в файле записаны в отсортированном виде по какого-нибудь признаку. Поэтому всегда следует перемешивать выборку прежде, чем производить кросс-валидацию. В ином случае алгоритм будет показывать плохое качество и причина этого будет не так очевидна.
- Если не предсказываете будущее
- При этом есть задачи, в которых выборку нельзя перемешивать. Это задачи предсказания будущего, например предсказание погоды на следующий день. В этом случае нужно особо следить за тем, как происходит деление выборки.
- Стоит использовать там, где данных немного
- Меры сложности модели
-
Регуляризация
-
«Симптомы» переобучения
- большие веса при признаках
- a(x) = 0.5 + 12458922*x + 43983740*x^2 + ... + 2740*x^9
-
мультиколлинеарность
- проблема, при которой признаки в выборке являются линейно зависимыми
- существуют коэффициенты α1, ..., αd такие, что для любого объекта xi из выборки выполняется:
α1xi + ... + αdx^di = 0.
- Другими словами, он будет также хорошо описывать данные в выборке, как и исходный алгоритм
- наличие линейной зависимости между объясняющими переменными (факторами) регрессионной модели. При этом различают полную коллинеарность, которая означает наличие функциональной (тождественной) линейной зависимости и частичную или просто мультиколлинеарность — наличие сильной корреляции между факторами.
-
Регуляризация
- Метод добавления некоторых дополнительных ограничений к условию с целью решить некорректно поставленную задачу или предотвратить переобучение. Чаще всего эта информация имеет вид штрафа за сложность модели.
- Квадратичный регуляризатор
- Регуляризация — одна из эвристик улучшения градиентных методов обучения. Основным способом уменьшить переобучение является квадратичная регуляризация, называемая также сокращением весов. Чтобы ограничить рост абсолютных значений весов, к минимизируемому функционалу Q(w) добавляется штрафное слагаемое
- Коэффициент регуляризации
- λ — неотрицательный гиперпараметр
- Чем больше λ, тем ниже сложность модели. Например, при очень больших его значениях оптимально просто занулить все веса.
- В то же время при слишком низких значениях λ высок риск переобучения, то есть модель становится слишком сложной.
- Поэтому нужно найти некоторое оптимальное значение λ, достаточно большое, чтобы не допустить переобучения, и не очень большое, чтобы уловить закономерности в данных. Обычно λ подбирается на кроссвалидации
- Смысл регуляризации
- Добавление регуляризатора вводит требование, чтобы решение задачи минимизации искалось в некоторой круглой области с центром в нуле.
- Геометрический смысл условной регуляризации. Красная точка — настоящий оптимум функции,красные линии — линии уровня функции, черная точка — оптимум функции при введенном ограничении.
- Таким образом, решение задачи с регуляризатором не будет характеризоваться слишком большими значениями весовых коэффициентов.
- Виды регуляризаторов
- L2-регуляризатор
- квадратичный регуляризатор
- является гладким и выпуклым
- позволяет использовать градиентный спуск
- L1-регуляризатор
- который представляет собой L1-норму вектора весов
- Он уже не является гладким, а также обладает интересным свойством. Если применять такой регуляризатор, некоторые веса оказываются равными нулю. Другими словами, такой регуляризатор производит отбор признаков и позволяет использовать в модели не все признаки, а только самые важные из них.
- не дает ответа на вопрос, насколько хорошо алгоритм поведет себя на новых данных, то есть какая у него будет доля ошибок на новых данных
-
Выбор гиперпараметров и сравнение алгоритмов
-
Гиперпараметры
- Гиперпараметрами называются такие параметры алгоритмов, которые не могут быть получены из обучающей выборки при обучении, поэтому их надо подбирать путем многократного обучения алгоритма
- Параметр регуляризации λ (при использовании регуляризатора)
- Степень полинома в задаче регрессии с семейством алгоритмов, заданным множеством полиномов определенной степени.
-
Сравнение разных алгоритмов
- Алгоритмы
- обученных с разными значениями гиперпараметров;
- использующих различный способ регуляризации;
- настроенных с использованием разного функционала ошибки, например среднеквадратичной ошибки и средней абсолютной ошибки;
- которые принадлежат разным классам алгоритмов.
- При сравнении алгоритмов можно использовать как отложенную выборку, так и кросс-валидацию
- пусть 1000 алгоритмов сравниваются по качеству на отложенной выборке. Каждый из 1000 алгоритмов, обученных на обучающей выборке, тестируется на отложенной, и в результате выбирается лучший. Фактически на этом шаге отложенная выборка также становится своего рода обучающей, и возникает проблема переобучения: из большого числа алгоритмов выбирается тот, который лучше всего ведет себя на отложенной выборке, лучше подогнан под нее.
-
Улучшенная схема сравнения алгоритмов
- все данные нужно будет делить на 3 части (в случае использования отложенной выборки): обучение, валидация и контроль
- Каждый из тысячи алгоритмов будет обучен на обучающей выборке, а
его качество будет измерено на валидационной. Алгоритм с наилучшим качеством будет проверен на тестовой выборке, чтобы исключить переобучение и проверить алгоритм на адекватность. По сути именно тестовая выборка будет играть роль новых данных.
- Если предпочтительно использовать кросс-валидацию, то данные следует разбить на 2 части. Первая из них будет использоваться для обучения алгоритмов и оценки качества с помощью кросс-валидации, после чего лучший алгоритм будет проверен на адекватность на контрольной выборке.
-
Метрики качества
-
Применение
- Для задания функционала ошибки (используется при обучении).
- Для подбора гиперпараметров (используется при измерении качества на кросс-валидации). В том числе можно использовать другую метрику, которая отличается от метрики, с помощью которой построен функционал ошибки.
- Для оценивания итоговой модели: пригодна ли модель для решения задачи.
-
Среднеквадратичная ошибка MSE
- легко оптимизировать, используя, например, метод градиентного спуска.
- сильно штрафует за большие ошибки, так как отклонения возводятся в квадрат.
- штраф на выбросе будет очень сильным, и алгоритм будет настраиваться на выбросы
- алгоритм будет настраиваться на такие объекты, на которые не имеет смысл настраиваться
-
Средняя абсолютная ошибка MAE
- сложнее минимизировать, так как у модуля производная не существует в нуле
- больше устойчивость к выбросам, так как штраф за сильное отклонение гораздо меньше
-
Коэффициент детерминации R^2
- R^2(a, X)
- Интерпретируемый вариант MSE
- Отношение суммы квадратичной ошибки к разнице значения и среднего значения функции (ответа)
- Этот коэффициент показывает, какую долю дисперсии (разнообразия ответов) во всем целевом векторе y модель смогла объяснить.
-
Для разумных моделей коэффициент детерминации лежит в следующих пределах
- 0 ≤ R^2 ≤ 1
- причем случай R^2 = 1 соответствует случаю идеальной модели,
R^2 = 0 — модели на уровне оптимальной «константной»,
а R^2 < 0 — модели хуже «константной» (такие алгоритмы никогда не нужно рассматривать).
- Оптимальным константым алгоритмом называется такой алгоритм, который возвращает всегда среднее значение ответов y¯ для объектов обучающей выборки.
-
Несимметричные потери
-
симметричные модели
- штрафуют как за недопрогноз, так и за перепрогноз
- существуют такие задачи, в которых ошибки недопрогноза и перепрогноза имеют разную цену
-
Пример
- Спрос на ноутбуки
- В этом случае заниженный прогноз приведет к потере лояльности покупателей и потенциальной прибыли (будет закуплено недостаточное количество ноутбуков), а завышенный — только к не очень большим дополнительным расходам на хранение непроданных ноутбуков
- функция потерь должна быть несимметричной и сильнее штрафовать за недопрогноз, чем за перепрогноз
-
Квантильная ошибка
-
Вероятностный смысл квантильной ошибки
- Чтобы разобраться, почему такая функция потерь называется квантильной, нужно разобраться с ее вероятностным смыслом. Пусть один и тот же объект x с одним и тем же признаковым описанием повторяется в
выборке n раз, но на каждом из повторов — свой ответ y1, ..., yn.
Такое может возникнуть при измерении роста человека. Измерения роста одного и того же человека могут отличаться ввиду ошибки прибора, а также зависеть от самого человека (может сгорбиться или выпрямиться).
При этом алгоритм должен для одного и того же признакового описания возвращать одинаковый прогноз.
Другими словами, необходимо решить, какой прогноз оптимален для x с точки зрения различных функционалов ошибки.
Оказывается, что если используется квадратичный функционал ошибки, то наиболее оптимальным прогнозом будет средний ответ на объектах, если абсолютный, то медиана ответов. Если же будет использоваться
квантильная функция потерь, наиболее оптимальным прогнозом, будет τ -квантиль. В этом и состоит вероятностный смысл квантильной ошибки
-
Метрика качества классификации
-
Доля правильных ответов
- в задачах классификации естественно использовать долю неправильных ответов (метрики нужно максимизировать)
- в задачах регрессии выбор метрик так, чтобы их нужно было минимизировать
- Эта метрика качества проста и широко используется, однако имеет несколько существенных недостатков.
- Проблемы
- Несбалансированные выборки
- Пусть в выборке 1000 объектов, из которых 950 относятся к классу −1 и 50 — к классу +1. Рассматривается бесполезный (поскольку не восстанавливает никаких закономерностей в данных) константный классификатор, который на всех объектах возвращает ответ −1. Но доля правильных ответов на этих данных будет равна 0.95, что несколько много для бесполезного классификатора.
- Пусть q0 — доля объектов самого крупного класса, тогда доля правильных ответов для разумных алгоритмов accuracy ∈ [q0, 1], а не [1/2, 1],
как это можно было бы ожидать
- Поэтому, если получается высокий процент правильных ответов, это может быть связано не с тем, что построен хороший классификатор, а с тем, что какого-то класса сильно больше, чем остальных.
- Цены ошибок
- Например, в задаче кредитного скоринга, то есть в задаче принятия решения относительно выдачи кредита, сравниваются две модели. При использовании первой модели кредит будет выдан 100 клиентам, 80 из которых его вернут. Во второй модели, более консервативной, кредит был выдан только 50 клиентам, причем вернули его в 48 случаях. То, какая из двух моделей лучше, зависит от того, цена какой из ошибок выше:
не дать кредит клиенту, который мог бы его вернуть, или выдать кредит клиенту, который его не вернет.
Таким образом, нужны дополнительные метрики качества, которые учитывают цены той или иной ошибки.
-
Точность и полнота
-
Матрица ошибок
- Удобно классифицировать различные случаи, как соотносятся между собой результат работы алгоритма и истинный ответ, с помощью так называемой матрицы ошибок.
- true positive
- Если алгоритм сработал и объект действительно относится к классу +1, имеет место верное срабатывание
- false positive
- если объект на самом деле относится к классу −1, имеет место ложное срабатывание
- false negative
- Если алгоритм дает ответ −1, говорят, что он пропускает объект. Если имеет место пропуск объекта класса +1, то это ложный пропуск
- true negative
- Если же алгоритм пропускает объект класса −1, имеет место истинный пропуск
-
Точность
- точность (precision), показывает, насколько можно доверять классификатору в случае срабатывания
-
Полнота
- полнота (recall), показывает, на какой доле истинных объектов первого класса алгоритм срабатывает
-
Пример
- Вторая модель является очень точной, но в ущерб полноте
-
Примеры условий
- Пусть в задаче кредитного скоринга ставится условие, что неудачных кредитов должно быть не больше 5%. В таком случае задача является задачей максимизации полноты при условии precision(a, X) ≥ 0.95.
- Необходимо построить модель, которая определяет, есть или нет определенное заболевание у пациента. При этом требуется, чтобы были выявлены как минимум 80% пациентов, которые действительно имеют данное заболевание. Тогда ставят задачу максимизации точности при условии recall(a, X) ≥ 0.8.
-
Несбалансированные выборки
- Пример матрицы ошибок
- Доля верных ответов (accuracy), точность(precision) и полнота(recall) для данного случая
- То, что доля верных ответов равняется 0.99, ни о чем не говорит: алгоритм все равно делает 66% ложных срабатываний и выявляет только 10% положительных случаев. Благодаря введению точности и полноты становится понятно, что алгоритм нужно улучшать.
-
Арифметическое среднее
- Единая метрика может быть получена как арифметическое среднее точности и полноты
- Пример
- Пусть есть алгоритм, точность которого равна 10%, а полнота — 100%
- Это может быть случай, когда в выборке всего 10% объектов класса +1, а алгоритм является константным и всегда возвращает +1. Очевидно, что этот алгоритм плохой, но введенная выше метрика для него равна
A = 0.55. В свою очередь другой, гораздо более лучший алгоритм, с precision = 0.55 и recall = 55 также характеризуется A = 0.55
- Ситуация, когда константный и разумный алгоритмы могут лежать на одной линии, является недопустимой, поэтому следует искать другой способ построения единой метрики.
-
Минимум
- Чтобы константный и разумный алгоритмы не лежали на одной линии уровня, можно рассматривать M = min(precision, recall)
- Пример
- precision = 0.05, recall = 1 ⇒ M = 0.05.
- два алгоритма, для которых точности одинаковы, но отличаются значения полноты, будут лежать на одной линии уровня M
- Такое тоже недопустимо, так как второй алгоритм существенно лучше первого.
-
F-мера
- «Сгладить» минимум можно с помощью гармонического среднего, или F-меры
- Пример
- Расширенная
- Если необходимо отдать предпочтение точности или полноте, следует использовать расширенную F-меру, в которой есть параметр β
- Например, при β = 0.5 важнее оказывается полнота, а в случае β = 2, наоборот, важнее оказывается точность
- Линии F = const в координатах precision–recall при значениях β = 1, β = 0.5 и β = 2 соответственно
-
Качество оценок принадлежности классу
-
Оценка принадлежности
- Многие алгоритмы бинарной классификации устроены следующим образом: сначала вычисляется некоторое вещественное число b(x), которое сравнивается с порогом t
- a(x) = [b(x) > t]
- где b(x) — оценка принадлежности классу +1. Другими словами, b(x) выступает в роли некоторой оценки уверенности, что x принадлежит классу +1
- В случае линейного классификатора a(x) = [<w, x> > t] оценка принадлежности классу +1 имеет вид b(x) = <w, x>.
- Часто бывает необходимо оценить качество именно оценки принадлежности, а порог выбирается позже из соображений на точность или полноту
- Пример
- Пусть рассматривается задачного кредитного скоринга и была построена некоторая функция b(x), которая оценивает вероятность возврата кредита клиентом x
- a(x) = [b(x) > 0.5]
- При этом получилось, что точность (precision) равна 10%, а полнота (recall) — 70%. Это очень плохой алгоритм, так как 90% клиентов, которым будет выдан кредит, не вернут его.
- При этом не понятно, в чем дело: был плохо выбран порог или алгоритм не подходит для решения данной задачи. Именно для этого необходимо измерять качество самих оценок b(x).
-
PR-кривая
- Первый способ оценки принадлежности классу основан на использовании кривой точности-полноты. По оси X откладывается полнота, а по оси Y — точность. Каждой точке на этой кривой будет соответствовать классификатор с некоторым значением порога.
- Для примера будет приведено построение PR-кривой для выборки из 6 объектов, три из которых относятся к классу 1 и 3 — к классу 0. Соответствующий ей график изображен выше.
- 1. При достаточно большом пороге ни один объект не будет отнесен к классу 1. В этом случае и точность и полнота равны 0.
2. При таком пороге, что ровно один объект отнесен к классу 1, точность будет 100% (поскольку этот объект действительно из 1 класса), а полнота — 1/3 (поскольку всего 3 объекта 1 класса).
3. При дальнейшем уменьшении порога уже два объекта отнесены к классу 1, точность также остается 100%, а полнота становится равной 2/3.
4. При таком пороге, что уже три объекта будут отнесены к классу 1, точность становится равной 2/3, а полнота остается такой же.
5. При таком пороге, что четыре объекта отнесены к классу 1, точность уменьшится до 0.5, а полнота опять не изменится.
6. При дальнейшем уменьшении порога уже 5 объектов будут отнесены к 1 классу, полнота станет равной 100%, а точность — 3/5.
- В реальных задачах с числом объектов порядка нескольких тысяч или десятков тысяч, кривая точностиполноты выглядит примерно следующим образом.
- Следует отметить, что начинается PR-кривая всегда из точки (0, 0), а заканчивается точной (1, r), где r — доля объектов класса 1.
- В случае идеального классификатора, то есть если существует такой порог, что и точность, и полнота равны 100%, кривая будет проходить через точку (1, 1).
- Таким образом, чем ближе кривая пройдет к этой точке,
тем лучше оценки. Площадь под этой кривой может быть хорошей мерой качества оценок принадлежности к классу 1. Такая метрика называется AUC–PRC, или площадь под PR-кривой.
-
ROC-кривая
- строится в осях False Positive Rate (ось X) и True Positive Rate (ось Y )
- ROC-кривая строится аналогично PR-кривой: постепенно рассматриваются случаи различных значений порогов и отмечаются точки на графике. Для упомянутой выше выборки ROC-кривая имеет следующий вид
- В случае с большой выборкой ROC-кривая выглядит следующим образом
- Кривая стартует с точки (0, 0) и приходит в точку (1, 1). При этом, если существует идеальный классификатор, кривая должна пройти через точку (0, 1). Чем ближе кривая к этой точке, тем лучше будут оценки,
а площадь под кривой будет характеризовать качество оценок принадлежности к первому классу. Такая метрика называется AUC–ROC,или площадь под ROC-кривой.
-
Особенности
- при изменении баланса классов величина AUC-ROC и неизменных свойствах объектов выборки площадь под ROC-кривой не изменится. В случае идеального алгоритма AUC − ROC = 1, а в случае худшего AUC − ROC = 1/2
- Значение AUC−ROC имеет смысл вероятности того, что если были выбраны случайный положительный и случайный отрицаельный объекты выборки, положительный объект получит оценку принадлежности выше,
чем отрицательный объект.
- PR-кривая строится в осях precision и recall, а следовательно изменяется при изменении баланса классов.
- Пример
-
Сводная
- Статья
-
log loss
- Логистическая функция ошибки
-
Смысл, как я поняла сама
- Первое слагаемое
- actual_i
- 0
- Если класс 0, то все слагаемое будет равно 0
- 1
- Указывает на значимость слагаемого
- log(predicted_i)
- predicted_i
- между 0 и 1
- "предсказание" того, что actual = 1
- Если класс 1 и предсказание стремится к 1, то значение вида true positive
- Если класс 1 и предсказание стремится к 0, то значение false negative
- свойства натурального логарифма
- Нас интересуют значения x от 0 до 1 (predicted может быть от 0 до 1)
- Если predicted стремится к 1, то y будет стремится к 0
- Приведет к тому, что слагаемое незначимо
- Если predicted стремится к 0, то y будет стремиться к минус бесконечности
- Значимо только при условии, что при этом класс = 1. Соответственно, чем меньше predicted, тем ниже будет значение слагаемого (больше отрицательное значение)
- Это ситуация false negative
- Второе слагаемое
- 1 - actual_i
- actual_i наоборот
- log(1 - predicted_i)
- Тут аналогичная логика только про false positive
- Будет увеличиваться отрицательное значение при условии, если actual_i = 0, а predicted_i стремится к единице. То есть модель считает, что там 1, а на самом деле там 0
- Сумма двух слагаемых
- Например, actual = 0, predicted = 0,68
- False Positive
- 0 * log(0,68) + 1 * log(1 - 0,68)
- log(0,32)
- -1,14
- второе слагаемое
- Если actual = 1
- True Positive
- 1 * log(0,68) + 0 * log(1 - 0,68)
- log(0,68)
- -0,38
- По логике видим, что значимым слагаемым всегда может быть только 1 слагаемое
- Видим, что вторая ситуация лучше, чем первая, учитывая, что в итоге мы берем средний отрицательный результат (минус на минус даст плюс), а значение log loss мы пытаемся минимзировать
- Вариант 3. actual = 0, predicted = 0,32
- True Negative
- log(1-0,32)
- -0,38
- Вариант 4. actual = 1, predicted = 0,32
- False Negative
- первое слагаемое
- log(0,32)
- -1,14
- Итого
- Итого, если наша модель в большинстве случаев склоняется к верному классу, log loss будет стремится к нулю. Но при наличии false positive и false negative срабатываний значение log loss будет увеличиваться.
- Чтобы повысить значимость того или иного вида ошибки достаточно добавить коэффициенты для слагаемых (например, 0,3 и 0,7)
- Статья про переобучение
-
Сокращения и термины
-
cv
-
кросс-валидация
-
MSE
-
среднеквадратичная ошибка
-
MAE
-
Средняя абсолютная ошибка
-
accuracy
-
доля правильный ответов
-
TP, FP, TN, FN
-
матрица ошибок
-
R**2
-
Коэффициент детерминации R^2
- Отношение суммы квадратичной ошибки к разнице значения и среднего значения функции (ответа)
-
precision
-
точность
-
recall
-
полнота
-
F-мера
-
гармоническое среднее точности и полноты
-
L1 или Lasso
-
регуляризатор
-
L2 или Ridge
-
регуляризатор
-
log_loss
-
Логистическая функция ошибки
-
PR-кривая
-
кривая точности(y) и полноты (x)
-
ROC-кривая
-
строится в осях False Positive Rate (ось X) и
True Positive Rate (ось Y)
-
AUC - area under curve
- площадь под кривой
-
AUC-ROC
-
Площадь под ROC-кривой
-
AUC-PRC
- площадь под PR-кривой
-
r-Пирсона
-
Линейный коэффициент корреляции r-Пирсона
-
масштабирование выборки
-
стандартизация или нормализация
- Чтобы произвести стандартизацию признака, достаточно вычесть из него его среднее значение и разделить на его стандартное отклонение
-
Масштабирование на отрезок [0, 1]
- Тогда минимальное значение признака отображается в ноль, а максимальное — в 1, то есть признаки масштабируются на отрезок [0, 1].