-
Принципы оценки адекватности и точности моделей
Какой бы сложной и полной не была модель,
она тем не менее является приближенным
отображение реального объекта и отражает
его при определенных принятых допущениях.
Однако до тех пор пока не доказана
адекватность модели реальной обстановке,
нельзя с уверенностью утверждать, что
с ее помощью получается те результаты,
которые действительно характеризуют
функционирование исследуемого объекта.
Оценка адекватности и точности
математической модели любого типа, в
том числе и имитационной, является
важнейшей задачей моделирования, так
как любые исследования на неадекватной
модели теряют смысл.
С ростом адекватности и точности модели
возрастают как ее стоимость, так и
ценность для исследования, в связи с
чем приходится решать вопрос о компромиссе
между стоимостью модели и последствиями
ошибочных решений из-за ее неадекватности
исследуемому процессу. Поэтому на
практике построение модели представляет
собой итеративный процесс усовершенствования
системы моделей, а следовательно, и
исследования объекта до тех пор, пока
это считается разумным. Поэтому и оценка
адекватности и точности модели
представляет собой непрерывный процесс,
начинающийся с началом исследования.
Правильность построения модели может
быть проверена только на практике за
счет повторения цикла «построение
модели – проверка модели».
Следует отметить, что понятие адекватности
модели не имеет качественного измерения:
модель либо адекватна явлении., либо не
адекватна (естественно, сточки зрения
выносящего суждение – заказчика).
Говорить о количественной оценке
точности перехода от концептуальной
модели к математической. Правомерно
говорить лишь о количественной оценке
точности реализации на ЭВМ заданной и
адекватной объекту математической
модели. При этом, естественно,
предполагается, что программа, реализующая
вычисления по математической модели,
не содержит ошибок, исходные данные
введены в машине правильно, а ЭВМ в
процессе счета не имела сбоев в работе.
Модель является достоверной, если ее
концептуальная модель адекватна
исследуемому процессу, математическая
модель адекватна концептуальной, а
точность реализации математической
модели на ЭВМ соответствует заданной,
т.е. погрешности расчета не превышают
допустимых
Основные ошибки при формировании
концептуальной модели следующие:
-
неправильный выбор критериев или
ограничений; -
введение в концептуальную модель
несущественных факторов или отсутствие
в ней ряда существенных факторов; -
неучет ряда условий функционирования
объекта; -
неправильный выбор гипотез, положенных
в основу структуры модели (например,
по составу элементов объекта, связей
между ними в процессе функционирования
и т.п.).
Проверка адекватности концептуальной
модели является достаточно сложной
задачей, так как оценка принципов,
положенных в основу модели, является
субъективной. Лучшим методом проверки
адекватности концептуальной модели
является рассмотрение модели специалистами,
не участвовавшими в ее разработке
(экспертиза модели), так как они могут
более объективно рассмотреть задачу и
заметить слабые стороны модели, не
замеченные авторами. Окончательное
решение об адекватности концептуальной
модели принимается только заказчиком,
который при одобрении концепции одобряет
тем самым все положенные в основу модели
допущения.
Основные принципиальные ошибки при
переходе от концептуальной модели к
математической следующие:
структура математической модели не
соответствует структуре концептуальной
модели;
модель включает неверные математические
соотношения.
По окончании разработки математической
модели до начала программирования
необходимая проверка адекватности
должна дать ответ на вопрос, насколько
используемые уравнения или моделирующий
алгоритм отражает концептуальную
модель. Если уравнения получены
теоретическим путем, могут быть проведены
вычисления в нескольких точках с целью
определения приемлемости результатов.
Дополнительная проверка уравнений
состоит в анализе размерностей. Необходимо
убедиться, что все единицы измерения
применены в соответствии с физическим
смыслом, масштабирование и согласование
размерностей в уравнениях проведено
правильно. Кроме того, обязательными
являются проверка результатов в условиях,
когда факторы модели принимают предельные
значения.
При переходе от концептуальной модели
к математической для формализации
описания явлений используются
линеаризация, аппроксимация, интерполяция,
причем каждый метод вносит определенные
погрешности. Если уравнения выведены
на основании анализа эмпирических
данных, необходимо провести выборочную
проверку согласия с опытными данными.
При этом могут быть использованы
статистические выборки для оценки
средних значений и дисперсий, дисперсионный,
регрессионный, факторный и спектральный
анализ, автокорреляция, метод проверки
с помощью критерия «
-квадрат»
и непараметрические проверки. Так как
каждый из этих статистических методов
основан на некоторых допущениях, то при
их использовании возникают вопросы,
связанные с оценкой их адекватности.
Решение об адекватности математической
модели по отношению к концептуальной
также принимается только заказчиком,
который тем самым разрешает исследователю
перейти к этапу реализации математической
модели на ЭВМ.
Оценка точности математической модели
представляет одну из наименее исследованных
методологических проблем в теории
моделирования. Рассмотрим, например,
измерение погрешности при изготовлении
детали. Если xи–
размер детали на чертеже (идеальный
размер), а хФ– фактический размер
изготовленной детали, то абсолютная
погрешность изготовления рассчитывается
по формуле
. (4.7)
Заметим, что определить погрешность
можно после изготовления детали.
Заказчика интересует, насколько
результаты моделирования могут отличаться
от того, что он получает на практике,
реализуя полученные на модели рекомендации.
При этом погрешность модели для него
характеризуется выражением, аналогичным
(4.7):
, (4.8)
где xФ–
фактический результат, полученный в
производстве после внедрения рекомендаций
модели;xМ– «теоретический» результат, т.е.
полученный при расчетах по математической
модели.
Однако оценка (4.8) может быть получена
заказчиком только послетого,
как рекомендации модели внедрены. А
если модель неправильна или велика
ошибка? Естественно, что заказчик хотел
быдовнедрения рекомендаций,
полученных на модели, убедиться в том,
что им можно доверять, что они
характеризуются приемлемой для него
погрешностью, т.е. определить величину
дореализации результатов моделирования.
Но тогда
,
гдеxИ–
результат. Полученный на «идеальной»
математической модели, т.е. модели, не
имеющей погрешности. В качестве
«идеальной» математической модели
может быть принята адекватная
концептуальной и утвержденная заказчиком
математическая модель исследуемого
процесса до ее реализации на ЭВМ.
Обычно точность реализации математической
модели на ЭВМ рассматривают через
совокупность различного рода погрешностей.
Если классифицировать погрешности
реализации «идеальной» модели на ЭВМ
с точки зрения причин их возникновения
( в качестве наиболее общего случая
рассмотрим имитационное статистическое
моделирование), можно выделить четыре
их вида:
-
погрешности моделирования, являющиеся
результатом незнания или неточного
задания исходных даны; -
погрешности моделирования, возникающие
при упрощении исходной математической
модели; -
погрешности расчета выходных характеристик
из-за дискретной реализации математической
модели на используемой цифровой
вычислительной машине, в том числе
ошибки округления; -
погрешности моделирования, обусловленные
ограниченностью статистики при
выборочной обработке статистической
информации или ограниченным числом
случайных испытаний модели на ЭВМ
(имитации).
Как правило, погрешности моделирования
представляют собой сумму систематических
(неслучайных) и случайных ошибок.
Рассмотрим отдельные группы погрешностей.
Погрешности
моделирования, возникающие из-за
неточного
задания
исходных данных
Как указывалось ранее, входные факторы
математической модели по своей природе
можно разделить на управляемые переменные
(выбираются исследователем),
детерминированные, случайные и
неопределенные факторы. Учет в модели
даже очень большого числа детерминированных
факторов не приводит к существенным
вычислительным трудностям. Включение
в модель случайных факторов на два-три
порядка увеличивает объем вычислений.
Увеличение числа переменных и
неопределенных факторов с оптимизационных
моделях также существенно увеличивает
объемы вычислений по нахождению
оптимальных решений. В ряде случаев их
большая размерность не позволяет
отыскать оптимальное решение в отведенное
время.
Стремление уменьшить объем вычислений
заставляет исследователя рассматривать
менее существенные факторы этих групп
как детерминированные, внося тем самым
ошибки в результаты моделирования.
Кроме того, неточность априорных сведений
зачастую приводит к тому, что исходные
данные в виде констант модели будут
определены с ошибками. Поэтому помимо
приближенного числового значения
входного детерминированного (или
рассматриваемого как детерминированный)
фактора необходимо указывать также его
предельную абсолютную погрешность (или
доверительный интервал), определенную
эвристически или с помощью известных
методов математической статистики.
Для изучения влияния величины этих
погрешностей на точность расчета
характеристик функционирования объекта
обычно применяют методы теории
чувствительности, основанные на
линеаризации исследуемой функции.
Вычисляемые коэффициенты чувствительности
функции по отношению к изменению
соответствующего фактора характеризуют
степень, с которой выходная характеристика
подвержена изменениям при изменении
интересующих исследователя входных
факторов. Однако непосредственное
получение уравнений чувствительности
может натолкнуться на серьезные
трудности, обусловленные большой
размерностью вектора входных факторов.
Поэтому на практике уравнения
чувствительности составляют для
небольшого числа факторов модели,
наиболее значимо влияющих на точность
определения выходных характеристик
системы. Выбор значимых факторов
проводится экспертными методами.
Погрешности
упрощения исходной математической
модели
При реализации математической модели
на ЭВМ приходится решать задачи, связанные
с упрощением исходной математической
модели. Чаще всего исходную математическую
модель упрощают в целях получения пусть
приближенного, но аналитического
решения, позволяющего быстро определить
как область нахождения экстремума, так
и влияния на нее расположение тех или
иных факторов модели. Для решения
подобных задач, как правило. Используют
методы аппроксимации исходных элементов
математической модели более простыми
математическими зависимостями, например
заменой нелинейных зависимостей
линейными, полиномов высоких степеней
полиномами низких степеней, негладких
функций гладкими и т.д. Величина ошибки
определяется степенью аппроксимации
и в ряде случаев сравнительно легко
может быть рассчитана.
Погрешность
расчета выходных характеристик из-за
дискретной
реализации
математической модели на ЭВМ
Одним из видов ошибок дискретной
реализации является погрешность
округления за счет конечного числа
разрядов ЭВМ. Погрешность округления
возникает при делении, умножении,
возведении в степень, в случае выполнения
трансцендентных операций ( таких, как
логарифмирование), тогда неизбежно
приходится ограничивать количество
значащих цифр, т.е. производить округление
промежуточных результатов.
Применяемые при решении моделей численные
методы вносят погрешность, связанную
с заменой бесконечного вычислительного
процесса конечным и называемую
погрешностью данного метода или
методической ошибкой. Например,
производная заменяется конечной
разностью, интеграл – суммой и т.п. Эти
погрешности обусловлены ошибками
численного интегрирования дифференциальных
уравнений, итерационных процедур поиска
экстремума, решения системы алгебраических
уравнений и многими другими ошибками,
которые сопровождают процессы реализации
математических моделей на ЭВМ. Погрешности
этого вида изучаются в численных методах
математического анализа и математического
программирования, где выводятся их
оценки, например остаточный член формулы
квадратур, остаточный член интерполяционной
формулы.
Замена непрерывных величин дискретными
при численном исследовании процессов
на ЭВМ также приводит к погрешностям,
величина которых зависит от шага
дискретизации. Количественную оценку
составляющих этих погрешностей удается
провести на уровне относительно
автономных частей математической модели
– модулей, реализующих данный численный
метод. При разработке модулей стремятся
выбрать такие методы дискретной
реализации, которые на основании
имеющихся сведений позволяют утверждать,
что погрешности моделирования не будут
превышать заданных величин. В процессе
испытания модели справедливость этих
априорных утверждений в ряде случаев
можно проверить с использованием
результатов проведенных экспериментов.
Погрешности,
обусловленные ограниченностью объема
статистических
данных
Этот тип погрешностей характерен для
моделей, включающих в состав входов
случайные факторы. В связи с тем, что на
практике исследователь всегда имеет
дело только с ограниченной статистической
выборкой, форма и характеристики
построенных на ее основе экспериментальных
законов распределения будут отличаться
от формы и характеристик законов
распределения, соответствующих
генеральной совокупности статистических
данных. Величина ошибок этого рода будет
в первую очередь зависеть от объема
статистической выборки и в меньшей
степени от выбранного метода сбора и
обработки статистических данных.
Для имитационной статистической модели
результирующая погрешность этого рода
будет определяться как погрешностью
определения законов распределения
входных случайных факторов (зависит от
объема экспериментальных данных о
значениях случайных величин), так и
погрешностью реализации этих законов
распределения на ЭВМ (зависит от числа
реализаций – прогонов модели на ЭВМ
для различных значений случайных
величин). Мерой их количественного
выражения является величина доверительного
интервала тех или иных характеристик
экспериментального (для входных факторов)
или полученного при моделировании на
ЭВМ (для выходных факторов) закона
распределения (средняя, эмпирический
стандарт и т.д.). при использовании в
математической модели регрессионных
зависимостей погрешность моделирования
будет определяться также доверительными
интервалами для коэффициентов в уравнении
регрессии (они также зависят от объема
статистики).
Ошибки, обусловленные ограниченностью
объема статистических данных являются
контролируемыми в том смысле, что при
необходимости они могут быть уменьшены
за счет увеличения их объема. Безусловно,
это приводит к увеличению затрат (либо
на сбор информации, либо затрат машинного
времени при реализации модели на ЭВМ),
но в разумных пределах этим фактором
можно пользоваться для уменьшения
суммарной погрешности моделирования.
Расчет
суммарной погрешности модели
Чтобы правильно просуммировать
систематические и случайные ошибки,
необходимо сначала их разделить. Затем
систематические ошибки алгебраически
суммируются для получения результирующей
систематической ошибки для всех
рассматриваемых компонентов. Так,
|
Результирующая ошибка |
|
Случайные ошибки суммируются в обычном
среднеквадратичном смысле:
|
Результирующая ошибка |
|
Если при построении модели пренебрегают
случайными факторами, учесть которые
можно, но которые в целях упрощения
включаются в модель детерминированными
средними значениями, то соответствующая
составляющая методической ошибки может
быть вычислена по формуле
,
где
–
среднеквадратичное отклонение
неучитываемых входных факторов от
средних значений;
— число неучитываемых случайных факторов;
–
коэффициент чувствительности целевой
функции (или некоторой выходной
характеристики) к изменению фактора
.
Часто используемая аппроксимация
результирующей ошибки, вызванной
одновременным присутствием систематической
и случайной ошибок, получается вычислением
корня квадратного из суммы квадратов
систематической и случайной компонент:
|
Результирующая |
|
Необходимо имеет в виду, что изменение
величин составляющих суммарной ошибки
в тех случаях, когда они заметно меньше
остальных, не приводит к существенному
изменению суммарной ошибки. Поэтому,
если модель является грубой, или часть
информации, вводимой в модель, определена
с большими ошибками, неизвестная
информация также может быть установлена
весьма приближенно. При построении
модели следует стремиться к тому, чтобы
все составляющие суммарной ошибки были
примерно одного порядка.
Поиск компромиссного соотношения между
случайными и систематическими ошибками
практически всегда связан с анализом
допустимых упрощений как исходных
алгоритмов отдельных модулей, так и
алгоритма их взаимодействия. При создании
математической модели способы анализа
возможных упрощений бывают различными,
но главное – обеспечить расчеты в
отведенное время и достичь при этом
заданной точности расчета. Таким образом
можно найти рациональную сложность
модели, обеспечивающую минимальную
величину суммарной погрешности при
заданном машинном времени. Во всех
случаях построения моделей следует
выбирать оптимальное сочетание сложности
модели (определяющей методическую
ошибку) и метода расчета (определяющего
ошибку расчета) с точностью входной
информации.
Анализ результатов моделирования и
оценка адекватности построенной модели
позволяет сделать вывод о необходимости
корректировки имеющейся модели и ее
направлениях (учет новых факторов,
переход от линейных зависимостей к
более гибким нелинейным, замена
статических моделей динамическими,
учет стохастичности и т.д.).
Распределение
допусков на управляемые переменные
объекта
Как правило, время, стоимость и возможности
построения объекта не позволяют требовать
точного соответствия всех его управляемых
переменных расчетным оптимальным
значениям без каких-либо допусков. В
реальных условиях вариации параметров
объекта оказываются неизбежными из-за
воздействия различных внешних условий,
неучтенных моделью, постепенным их
изменением на протяжении срока
функционирования объекта. По этой
причине «наилучшие» значения переменных
должны выбираться с учетом влияния
вариаций и допусков, а не для некоторых
кратковременных «оптимальных» условий,
которые могут быстро исчезнуть или
практически ен существовать. Термин
«допуск» употребляется для обозначения
установленного допущения ошибки в
параметре или каком-либо другом требовании
и отражает максимально допустимую
ошибку в противоположность действительной
ошибке в каждом конкретном случае. Когда
связь между изменение выходных
характеристик и изменением переменных
известна и известны допуски на
характеристики, можно определить
величины допуска на значения параметров:
,
где DE–допуск на выходную характеристику
модели (например, критерий оптимальностиE); устанавливается
заказчиком в техническом задании на
разработку математической модели
– суммарная погрешность модели при
расчете выходной характеристикиE;
–
суммарный допуск по выходной характеристикеEна значение управляемых
переменных
.
Естественно, что проблема установления
допусков возникает только в том случае,
когда суммарная погрешность модели
меньше величины допуска, т.е.
.
При распределении суммарного допуска
по управляемым переменным
необходимо ответить на два основных
вопроса: как изменяется выходная
характеристика при изменении каждой
переменной, т.е. каков вид зависимостей
?
Какова связь между допусками на отдельные
переменный? Например, может ли изменение
характеристики, вызванные одновременным
переменных быть аппроксимировано суммой
изменений, вызванных изменением каждой
переменной с отдельности, т.е.
?
Обычно любым из пригодных методов
(аналитическим, теории планирования
экспериментов и т.п.) строят уравнения
чувствительности относительно переменных
моделей xiдля интересующего исследователя
диапазона их изменения:
. (4.9)
Зная коэффициенты чувствительности по
переменным
,
определяют допуски по переменным
,
для которых бы выполнялось равенство
. (4.10)
Выражение (4.10) не дает однозначного
решения при определении величины
допусков для отдельных переменных, а
являются необходимым условием.
Окончательно величины допусков выбираются
исследователем эвристически, в том
числе путем привлечения неформализуемой
информации.
При разработке имитационных моделей в
целях сокращения времени важно
организовать работу так, чтобы
программирование модулей в моделирующих
алгоритмах велось параллельно и была
уверенность в том, что точность описания
процессов в модулях обеспечит требуемую
точность расчета выходных характеристик
всего объекта. При известных требованиях
к точности значительно упрощается выбор
метода моделирования и способов
реализации операторов, описывающих
процессы в отдельных модулях.
Для начальных этапов разработки модели
в условиях неполной информации в
литературе предлагается на основании
оценки экспертов получить совокупность
весовых коэффициентов
,
определяющих распределение допуска
выходной характеристики системыDEпо каждомуr-му модулю:
.
Коэффициенты
могут рассчитываться как суммы
относительных ошибок оценки параметровxirкаждогоr-го модуля:
,
где nr– число параметров, описывающихr-й
модуль.
В качестве факторов, входящих в формулу
(4.10), могут быть использованы не только
переменные, но и другие изменяющиеся
или неточно определенные факторы, Далее
по изложенной выше методике определяются
погрешности по каждому модулю
,
строятся уравнения чувствительности
(4.9) и проводится распределение допусков
на переменных по выражениям вида (4.10).

-
Дайте определение имитационной
системы и имитационной модели как
подкласса математических моделей.
Приведите классификацию имитационных
моделей и представьте их особенности. -
Опишите основные
этапы имитационного моделирования. В
чем основная суть и содержание этапов
имитационного моделирования:
экспериментирование, интерпретация,
трансляция модели, оценка адекватности
-
Дайте основные
понятия моделирующего алгоритма и
формализованной схемы процесса.
Приведите и поясните структуру
моделирующего алгоритма для оптимизационной
модели со случайными факторами -
В
чем основная суть и содержание процедуры
разработки формализованной схемы
процесса -
Приведите основные
принципы и способы построения моделирующих
алгоритмов -
В
чем суть и содержание метода имитации
с использованием модели случайных
входов? -
В
чем основная суть и содержание метода
преобразования равномерно распределенных
случайных чисел, базирующихся на
центральной предельной теореме теории
вероятности? -
В
чем суть и содержание метода имитации
с использованием модели выхода –
обработки реализации случайных величин? -
Опишите основные
положения теории оптимального
эксперимента. В чем суть планирования
экспериментов? Как осуществляется
описание результирующих характеристик
по результатам реализации планированного
эксперимента? -
Что
такое полный факторный эксперимент?
Приведите план и графическую интерпретацию
эксперимента 2n.
Когда применяется план дробного
факторного эксперимента? -
Что
Вы знаете о языках имитационного
моделирования? Перечислите некоторые
из известных языков. -
Что такое адекватность и точность
математической модели? Какие методы
их оценки Вы знаете? -
Из
чего складывается погрешность
моделирования? Перечислите основные
погрешности моделирования и источники
их возникновения. -
Что Вы знаете о погрешностях
моделирования, возникающих из-за
неточности задания исходных данных? -
Как
возникают погрешности моделирования
за счет упрощения исходной математической
модели? -
Опишите основные
погрешности расчета выходных характеристик
из-за дискретной реализации математической
модели на ЭВМ -
В
чем суть погрешностей, обусловленных
ограниченностью объемов исходных
статистических данных? -
Как
осуществляется расчет суммарной
погрешности математической модели?
Привет, чемпион! Возможно, перед тобой сейчас стоит задача построить предиктивную модель, или ты просто фармишь Kaggle, и тебе не хватает идей, тогда эта статья будет тебе полезна!
Наверное, уже только ленивый не слышал про Data Science и то, как модели машинного обучения помогают прогнозировать будущее, но самое крутое в анализе данных, на мой взгляд, — это хакатоны! Будь-то Kaggle или локальные соревнования, везде примерно одна задача — получить точность выше, чем у других оппонентов (в идеале еще пригодную для продакшена модель). И тут возникает проблема…
С одной стороны, все используемые модели давно известны и реализованы, с другой стороны, находятся победители, которым удается реализовать решение, которое на тех же библиотеках и на тех же данных дает наилучших скор. Вот как они это делают? Как лидеры вырываются вперед? В чем магия? — Что ж, сейчас я поделюсь с вами несколькими трюками, как можно выжать максимум из данных и ваших моделей.
Работа с данными
Опустим банальные вещи типа нормировки численных значений или кодирование категориальных переменных, а сразу перейдем к обсуждению чистки данных.
В данных почти всегда будут «грязь» и пропуски. Грамотная обработка этих проблем может сильно продвинуть вас в построении качественной модели.
Начать стоит с заполнения численных значений средним или медианой, а если говорим про категориальные переменные, то заполняем их пропуски самыми популярными значениями. Для этого уже есть готовые элементы из Sklearn, например SimpleImputer.
Более умный способ — посмотреть на данные пристальным взглядом и попытаться понять природу пропусков. Приведу два примера из личного опыта:
Классификация временных рядов — три идея для рассмотрения — 1) Заполнить пропуски средним значением двух соседних точек слева или справа. 2) Попытаться дорисовать ряд, исходя из направления тренда ряда 3) Дорисовать, смотря на похожие образцы (тут поможет KNNImputer).
Еще один пример из моего опыта — кредитный скоринг — у пользователей в данных было много пропусков, очень помогло: 1) посмотреть на этих пользователей в какой-то момент времени в прошлом. Здесь я заметил, что есть переменные, которые почти не меняются во времени, например, род деятельности. Такие пропуски можно заменить значениями из прошлого. 2) Также обнаружил, что крупная часть пользователей не имеет никаких признаков кроме id самого пользователя и id контракта. Тут ничего с пропусками не сделаешь, но зато мы это заметили! Эту информацию можно будет использовать при генерации новых признаков.
Генерация признаков (Feature Engineering)
Мой любимый пункт по увеличению точности модели, так как здесь понимаешь, что анализ данных это не просто наука, это иногда искусство. Разберем этот пункт на примере задачи классификации. Чтобы облегчить жизнь вашей модели и позволить ей лучше решать эту задачу, вам стоит генерировать признаки так, чтобы они позволяли разделить ваши объекты на классы.
Вот пример.
На рисунке цвет временного ряда отражает его класс. Как видите, помимо использования сырых данных, новые признаки позволяют проще классифицировать временные ряды.
Выбор модели
Хорошо, вот вы почистили и сгенерировали новые признаки
дэйта на взводе
. Что теперь? Втыкаем линейную регрессию и залетаем в топ лидерборда? — В крайне редком случае это так, и линейные модели дают лучший скор, но как показывает практика, на табличных данных лучше всего «стреляют» градиентные бустинги.
Вам пригодятся три из них: Catboost, LightGMB и Xgboost. Каждый из этих бустингов имеет под капотом свой собственный алгоритм построения дерева решений. Интернет завален примерами и тьюториалами по этим алгоритмам, поэтому просто скажу — используйте! Один только сatboost из коробки дает такой бейзлайн, что придется еще постараться, чтобы побить его. Вот пример моего кода с использованием catboost. Стоит взять и попробовать
самый любимый
каждый из них в вашей задаче.
Замечание: успех выбора модели сильно зависит от данных и ваших навыков тюнить эти модели. Об этом позже сделаю отдельную статью, но это неточно.
Тюнинг моделей — model tuning
Хорошо, у нас в обойме готовые данные и заряженный бустинг, но точность все равно пока еще оставляет желать лучшего?! Не беда — время для «танцев с бубном»!
Делом в том, что не достаточно просто взять модель и накинуть ее на имеющиеся данные, если ваша цель — оказаться в лидерах турнирной таблицы. Чтобы поднять скор, необходимо погрузиться в данные еще глубже, а также основательно поработать с гиперпараметрами модели.
В подборе гиперпараметров модели всегда есть рабочее решение: втыкаем GridSearch, а лучше Optuna и ждем час другой, пока не подберутся оптимальные параметры. Однако, изучение данных и признаков — задача более трудная.
Отбор признаков — feature selection
Если в ваших данных есть несвязанные с целевой переменной признаки, то, с большой вероятностью, вы получите менее точный результат. И это случится независимо от используемой модели машинного обучения. Чтобы избежать потери точности, необходимо откинуть все ненужные признаки, но как это сделать?
Пройдусь кратко по списку подходов, с помощью которых можно почистить признаки:
Корреляция Пирсона — классический способ, который, однако, чувствителен к шуму и подходит только для задачи регрессии или бинарной классификации.
Feature Importance — удобный и понятный подход, но деревья часто извлекают зависимости там, где их нет. Метод можно усилить, сопоставив исследуемый признак с рандомным. Все признаки, которые оказались менее важными, чем Random, рассматриваем в качестве «кандидатов» на удаление.

Permutation Importance — один из моих фаворитов, но из предостережений — может долго считаться и требует внимательности, чтоб не подсмотреть в тест.

OLS модель + отсев по p-value — must have, если вы строите интерпретируемую модель и хотите качественно отфильтровать весь мусор.
Визуальный осмотр — вот это уже мой настоящий фаворит. Если время и размер признаков позволяют изучить каждый по отдельности, то такой способ позволит рассудить шумные признаки, которые предыдущие методы решили отсеять.
Понижение размерности — если совсем лень возиться с шумом в данных, то просто понижаем размерность с помощью PCA, UMAP или t-SNA. Точность вряд ли подрастёт, но так модели будут обучаться пободрее.
Итоги:
Мы разобрали несколько способов увеличения точности модели. Конечно, это только малый список подходов. В реале существуют сотни других трюков и хитростей, как еще можно увеличить точность моделей. Если вам интересно узнать больше о таких трюках, то я публикую подобные идеи в своем канале. Более того, в моих планах — продолжать делиться секретами успешных кейсов из собственной практики на Хабре — ждите!
Канал в телеграм
[c.386]
Описанный подход к анализу имеет существенные преимущества по сравнению с другими он обеспечивает комплексность и целенаправленность исследования методологически обоснованную схему поиска резервов повышения эффективности производства объективную оценку результатов хозяйствования оперативность, действенность, обоснованность, точность анализа и его выводов. Полученная экономико-математическая модель может многократно использоваться в анализе и служить хорошим средством обоснования управленческих решений.
[c.36]
Все используемые методы разработки управленческих решений по степени формализации расчетов можно разделить на две большие группы — формализованные и эвристические. Формализованные методы имеют четкий алгоритм решения задачи в виде экономико-математических моделей, методик анализа и расчета данных, компьютерных программ, которые обеспечивают высокую точность количественной оценки разрабатываемых вариантов. Формализованные методы используются для разработки и оптимизации программных, т. е. структурированных, решений.
[c.242]
Существует ряд принципиальных сложностей, связанных с оценкой риска при помощи сценарного подхода. Используемые математические модели и методы для расчета последствий аварий и отказов оборудования содержат внутри себя значительную неопределенность, связанную с большой сложностью моделируемых объектов и недостаточным знанием путей развития неблагоприятных процессов. Поэтому большое значение для разработки стратегии управления рисками крупных производственных предприятий и повышения точности расчетов имеет создание баз данных по отказам элементов оборудования, проработка различных вариантов и создание базы данных по сценариям развития аварий, а также повышение качества сбора первичной статистической информации.
[c.62]
На неопределенность в оценке вариантов решения влияют различные факторы точность оценки параметров, выбор и оценка важности критериев, адекватность математической модели, личные качества эксперта или руководителя и т.д. Рассмотрим сначала один фактор — точность измерения и покажем, как в зависимости только от точности измерения, могут меняться результаты оценок.
[c.82]
Итогом работ по выбору вида математической модели прогноза является формирование ее обобщенных характеристик. В обобщенную характеристику должны быть включены вид уравнения регрессии, значения его параметров, оценки точности и адекватности модели и сами прогнозные оценки, точечные и интервальные.
[c.185]
Какой бы сложной и полной ни была модель, она тем не менее является приближенным отображением реального объекта и отражает его при определенных принятых допущениях. Однако до тех пор пока не доказана адекватность модели реальной обстановке, нельзя с уверенностью утверждать, что с ее помощью получатся те результаты, которые действительно характеризуют функционирование исследуемого объекта. Оценка адекватности и точности математической модели любого типа, в том числе и имитационной, является важнейшей задачей моделирования, так как любые исследования на неадекватной модели теряют смысл [4].
[c.30]
С ростом адекватности и точности модели возрастают как ее стоимость, так и ценность для исследования, в связи с чем приходится решать вопрос о компромиссе между стоимостью модели и последствиями ошибочных решений из-за неадекватности исследуемому процессу. Оценка адекватности и точности модели представляет собой непрерывный процесс, правильность построения модели может быть проверена только на практике за счет повторения цикла построение модели — проверка модели . Следует отметить, что понятие адекватности модели не имеет количественного измерения модель либо адекватна явлению, либо не адекватна. При этом, естественно, предполагается, что программа, реализующая вычисления по математической модели, не содержит ошибок, исходные данные введены в машину правильно. Таким образом, модель является достоверной, если ее концептуальная модель адекватна исследуемому процессу, математическая модель адекватна концептуальной, а точность реализации математической модели на ЭВМ соответствует заданной, т.е. погрешности расчета не превышают допустимых [4, с.И8].
[c.31]
Оценка точности математических моделей
[c.251]
Обычно неизвестное состояние имеет принципиальную возможность быть вычисленным устройством наблюдатель по известным измерениям и известной модели объекта с некоторой точностью (результат вычисления называется поэтому оценкой состояния х(0), если объект с измерителем обладают свойством наблюдаемость . Цель управления принципиально может быть достигнута, если управляющих координат достаточно, чтобы привести объект к любому требуемому его состоянию — если объект обладает свойством управляемость . О достижимости цели управления свидетельствует возможность достигнуть любого именно состояния (а не выхода) в виду того, что состояние как математическое понятие, веденное специально для полного представления объекта, является более адекватным этой задаче, чем инженерное понятие выход.
[c.53]
Таким образом, в математическую модель производительности труда необходимо включить лишь практически целесообразный минимум факторов, наиболее полно характеризующих объективные условия производства и в первую очередь природные условия и технический уровень производства в НГДУ. Естественно предположить, что объективные закономерности влияния основных факторов на производительность выявляются лишь в среднем по отрасли. Специфические особенности добычи нефти на отдельных предприятиях приводят к значительным отклонениям значений показателя производительности труда, например, по анализируемым в работе 76 НГДУ почти в 650 раз. В то же время производительность труда в добыче нефти в отдельных НГДУ (при одних и тех же значениях основных факторов) устойчиво распределяется вокруг некоторого среднего значения. Поэтому зависимость не проявляется в каждом отдельном случае, а только в общем при достаточно большом числе случаев (наиболее точно по всем НГДУ отрасли). Точность оценки влияния отдельных факторов на уровень производительности труда во многом зависит от объема исходной информации.
[c.64]
Разработка достаточно объективных математических моделей для определения абсолютных и относительных (оценок) комплексных показателей — трудоемкая операция, требующая глубокого и всестороннего исследования объекта. Такие модели позволят поставить оценку качества на серьезную основу, и лолучать результаты с приемлемой точностью.
[c.69]
Представители теории рациональных ожиданий как другая сторона критической оценки кейнсианства, в основном американцы Т. Сарджент, Р. Лукас, С. Фишер и другие, считали, что в отличие от правительства независимые экономические агенты в точности прогнозируют темпы инфляции и строят свои планы на основе этих прогнозов. Ожидания населения, прогнозы людей, базирующиеся на доступной информации, являются рациональными, поэтому они л рынок не нуждаются в мудром правительстве, которое бы их направляло. Концепция рациональных ожиданий широко используется в сложных математических моделях микроэкономики. Она основывается, как и монетаризм, на теории эффективности ценового регулирования и количественной теории денег.
[c.41]
Полное описание реальных объектов представляет собой нереальную задачу, т. к. практически невозможно учесть все действующие на них переменные. Обычно при построении математической модели любого характера приходится учитывать только основные, определяющие факторы и отбрасывать второстепенные. Естественно, что полученное математическое описание всегда беднее реального объекта и отражает только его основные закономерности, необходимые для решения конкретной задачи. Возникает необходимость в определении степени идентичности модели реальному объекту. Для количественной оценки степени идентичности модели объекту Н.С. Райбман [79] предложил дисперсионную меру определенности процесса, которая для случая линейной корреляционной модели равна квадрату коэффициента корреляции. Практическая полезность меры имеет два аспекта. Во-первых, она позволяет количественно определить влияние введенных в модель факторов на выходной параметр. Во-вторых, с помощью меры определенности можно проводить дисперсионный анализ погрешностей изготовления деталей. Например, если связь между переменными Хи Y выражена линейными уравнениями типа у = ах + Ьс коэффициентом корреляции =0,8, это значит, что точность изготовления детали по параметру Уна 64% зависит от фактора Xи на 36% — от неучтенных факторов. Аналогичными свойствами, как указывалось в работе [98], обладает коэффициент информационной связи Rr Это дает возможность выдвинуть гипотезу о том, что RJ можно использовать в качестве меры определенности процесса.
[c.75]
При прогнозировании объектов, перспективные показатели работы которых не могут быть представлены в виде математической модели, часто используют метод экспертных оценок. Точность этих оценок полностью зависит от степени профессионального опыта и интуиции привлекаемых экспертов. Поэтому к их подбору проявляют особую требовательность — из состава экспертов исключают специалистов, которые хотя и располагают всеми необходимыми данными, но не способны предвидеть те изменения, которые должны произойти. Подобное зкспертирова-ние, выполненное Центральным научно-исследовательским институтом экспериментального проектирования инженерного оборудования и в котором участвовали 56 ведущих специалистов страны, позволило дать оценку возможности применения к 1980, 1990 и 2000 гг. различных технических решений систем отопления и кондиционирования воздуха в жилых и общественных зданиях. Третий метод технико-экономического прогнозирования — анализ патентной информации, относящейся к данному виду инженерного оборудования зданий, предусматривает отбор тех патентов, применение которых в перспективном периоде наиболее вероятно,
[c.131]
И главный фактор успеха здесь — это понимание того, что такое рациональное инвестиционное поведение, плюс качественная и количественная математическая модель такого поведения. Много сил в науке было отдано тому, чтобы описать рациональный инвестиционный выбор (например, через функцию инвестиционной полезности). Однако, если исследование аспектов рационального инвестиционного поведения не опирается на детальный анализ фондового рынка и макроэкономической обстановки в стране, где осуществляются инвестиции, то такой анализ рационального инвестиционного поведения является бесполезным. А в такой постановке задача практически не звучит. Приятным исключением является подход, применяемый компанией Latti e Finan ial [129], где прослеживается детальная модельная связь между макроэкономическими факторами и количественными оценками тенденций фондового рынка. Но здесь другая крайность слишком велика в моделях [129] доля механистического понимания связей на макро- и микроуровне, когда возникает прямой соблазн рекурсивного прогнозирования , где будущее с точностью до вероятностно расред елейного случайного сигнала определяется настоящим. Фактор рационализации выбора совершенно выпадает из моделей такого сорта.
[c.95]
Влияние неполного или избыточного представления набора объясняющих переменных на свойства оценок и соответственно на точность статистических выводов в регрессионном анализе (при правильном определений структуры модели) может быть учтено в рамках строгих математических конструкций (см., например, [119, гл. 6] .
[c.356]
В целях повышения стратегической конкурентоспособности фондоемкие производства вынуждены вовлекать в хозяйственную деятельность затратоемкие бизнес-процессы. Следовательно, значимость ошибки в случае расхождения плановых и фактических показателей всегда высокая, что объясняется иммобилизацией части капитала на убыточных или менее выгодных направлениях. Развитие экономики в условиях рынка неизбежно сопровождается усложнением социально-экономических связей и, следовательно, ростом неопределенности как внешней, так и внутренней среды. В настоящее время многие отечественные и зарубежные фирмы функционируют в условиях стратегических неожиданностей, что затрудняет построение адекватных математических оптимизационных моделей. В условиях неопределенности существующие модели оптимизации товарного ассортимента не обеспечивают адекватности и надежности плана в долгосрочном периоде, поскольку в значительной степени зависят от точности статистических и аналитических прогнозов, экспертных оценок. Однако, на современном этапе эволюционного развития общества, научно-технического прогресса, в условиях рыночной экономики совершенствование математического аппарата для снижения погрешностей прогнозирования в задачах формирования товарно-ассортиментной политики, как правило, неоправданно, что связано предельной полезностью получения дополнительной информации. Повышение определенности планирования ведет к увеличению издержек в геометрической прогрессии.
[c.4]
Возрастание требований к эффективности систем управления влечет за собой повышение требований к точности и адекватности моделей управляемых объектов. При этом требования по точности предъявляются как к прямой, так и обратной модели, а сама модель в общем случае понимается как обобщенная модель по Эйкхоффу [1].Особенно остро эта задача встает при создании систем прямого цифрового управления нелинейными объектами. Поскольку реальные объекты обычно характеризуются нелинейной, сложной структурой, а также неполнотой математического описания и информации как о самом объекте так и сигналах и помехах, действующих на него, существуют два подхода к решению задачи идентификации. Первый подход связан с аппроксимацией объекта набором (цепочкой) элементарных звеньев известной структуры, а построение модели сводится к оценке характеристик этих звеньев по данным нормальной эксплуатации. Сущность второго подхода состоит в желании ослабить зависимость результата решения задачи идентификации от ограничений, накладываемых априорными предположениями, и создании более общего унифицированного подхода к решению задачи идентификации. Примерами такого подхода являются разработки методов статистической линеаризации [2,3], метода функциональных преобразований [4,5] и информационных методов идентификации [6,7].
[c.96]
Гораздо легче что-то измерить, чем понять, что именно вы измеряете
Джон Уильям Салливан
Задачи машинного обучения с учителем как правило состоят в восстановлении зависимости между парами (признаковое описание, целевая переменная) по данным, доступным нам для анализа. Алгоритмы машинного обучения (learning algorithm), со многими из которых вы уже успели познакомиться, позволяют построить модель, аппроксимирующую эту зависимость. Но как понять, насколько качественной получилась аппроксимация?
Почти наверняка наша модель будет ошибаться на некоторых объектах: будь она даже идеальной, шум или выбросы в тестовых данных всё испортят. При этом разные модели будут ошибаться на разных объектах и в разной степени. Задача специалиста по машинному обучению – подобрать подходящий критерий, который позволит сравнивать различные модели.
Перед чтением этой главы мы хотели бы ещё раз напомнить, что качество модели нельзя оценивать на обучающей выборке. Как минимум, это стоит делать на отложенной (тестовой) выборке, но, если вам это позволяют время и вычислительные ресурсы, стоит прибегнуть и к более надёжным способам проверки – например, кросс-валидации (о ней вы узнаете в отдельной главе).
Выбор метрик в реальных задачах
Возможно, вы уже участвовали в соревнованиях по анализу данных. На таких соревнованиях метрику (критерий качества модели) организатор выбирает за вас, и она, как правило, довольно понятным образом связана с результатами предсказаний. Но на практике всё бывает намного сложнее.
Например, мы хотим:
- решить, сколько коробок с бананами нужно завтра привезти в конкретный магазин, чтобы минимизировать количество товара, который не будет выкуплен и минимизировать ситуацию, когда покупатель к концу дня не находит желаемый продукт на полке;
- увеличить счастье пользователя от работы с нашим сервисом, чтобы он стал лояльным и обеспечивал тем самым стабильный прогнозируемый доход;
- решить, нужно ли направить человека на дополнительное обследование.
В каждом конкретном случае может возникать целая иерархия метрик. Представим, например, что речь идёт о стриминговом музыкальном сервисе, пользователей которого мы решили порадовать сгенерированными самодельной нейросетью треками – не защищёнными авторским правом, а потому совершенно бесплатными. Иерархия метрик могла бы иметь такой вид:
- Самый верхний уровень: будущий доход сервиса – невозможно измерить в моменте, сложным образом зависит от совокупности всех наших усилий;
- Медианная длина сессии, возможно, служащая оценкой радости пользователей, которая, как мы надеемся, повлияет на их желание продолжать платить за подписку – её нам придётся измерять в продакшене, ведь нас интересует реакция настоящих пользователей на новшество;
- Доля удовлетворённых качеством сгенерированной музыки асессоров, на которых мы потестируем её до того, как выставить на суд пользователей;
- Функция потерь, на которую мы будем обучать генеративную сеть.
На этом примере мы можем заметить сразу несколько общих закономерностей. Во-первых, метрики бывают offline и online (оффлайновыми и онлайновыми). Online метрики вычисляются по данным, собираемым с работающей системы (например, медианная длина сессии). Offline метрики могут быть измерены до введения модели в эксплуатацию, например, по историческим данным или с привлечением специальных людей, асессоров. Последнее часто применяется, когда метрикой является реакция живого человека: скажем, так поступают поисковые компании, которые предлагают людям оценить качество ранжирования экспериментальной системы еще до того, как рядовые пользователи увидят эти результаты в обычном порядке. На самом же нижнем этаже иерархии лежат оптимизируемые в ходе обучения функции потерь.
В данном разделе нас будут интересовать offline метрики, которые могут быть измерены без привлечения людей.
Функция потерь $neq$ метрика качества
Как мы узнали ранее, методы обучения реализуют разные подходы к обучению:
- обучение на основе прироста информации (как в деревьях решений)
- обучение на основе сходства (как в методах ближайших соседей)
- обучение на основе вероятностной модели данных (например, максимизацией правдоподобия)
- обучение на основе ошибок (минимизация эмпирического риска)
И в рамках обучения на основе минимизации ошибок мы уже отвечали на вопрос: как можно штрафовать модель за предсказание на обучающем объекте.
Во время сведения задачи о построении решающего правила к задаче численной оптимизации, мы вводили понятие функции потерь и, обычно, объявляли целевой функцией сумму потерь от предсказаний на всех объектах обучающей выборке.
Важно понимать разницу между функцией потерь и метрикой качества. Её можно сформулировать следующим образом:
-
Функция потерь возникает в тот момент, когда мы сводим задачу построения модели к задаче оптимизации. Обычно требуется, чтобы она обладала хорошими свойствами (например, дифференцируемостью).
-
Метрика – внешний, объективный критерий качества, обычно зависящий не от параметров модели, а только от предсказанных меток.
В некоторых случаях метрика может совпадать с функцией потерь. Например, в задаче регрессии MSE играет роль как функции потерь, так и метрики. Но, скажем, в задаче бинарной классификации они почти всегда различаются: в качестве функции потерь может выступать кросс-энтропия, а в качестве метрики – число верно угаданных меток (accuracy). Отметим, что в последнем примере у них различные аргументы: на вход кросс-энтропии нужно подавать логиты, а на вход accuracy – предсказанные метки (то есть по сути argmax логитов).
Бинарная классификация: метки классов
Перейдём к обзору метрик и начнём с самой простой разновидности классификации – бинарной, а затем постепенно будем наращивать сложность.
Напомним постановку задачи бинарной классификации: нам нужно по обучающей выборке ${(x_i, y_i)}_{i=1}^N$, где $y_iin{0, 1}$ построить модель, которая по объекту $x$ предсказывает метку класса $f(x)in{0, 1}$.
Первым критерием качества, который приходит в голову, является accuracy – доля объектов, для которых мы правильно предсказали класс:
$$ color{#348FEA}{text{Accuracy}(y, y^{pred}) = frac{1}{N} sum_{i=1}^N mathbb{I}[y_i = f(x_i)]} $$
Или же сопряженная ей метрика – доля ошибочных классификаций (error rate):
$$text{Error rate} = 1 — text{Accuracy}$$
Познакомившись чуть внимательнее с этой метрикой, можно заметить, что у неё есть несколько недостатков:
- она не учитывает дисбаланс классов. Например, в задаче диагностики редких заболеваний классификатор, предсказывающий всем пациентам отсутствие болезни будет иметь достаточно высокую accuracy просто потому, что больных людей в выборке намного меньше;
- она также не учитывает цену ошибки на объектах разных классов. Для примера снова можно привести задачу медицинской диагностики: если ошибочный положительный диагноз для здорового больного обернётся лишь ещё одним обследованием, то ошибочно отрицательный вердикт может повлечь роковые последствия.
Confusion matrix (матрица ошибок)
Исторически задача бинарной классификации – это задача об обнаружении чего-то редкого в большом потоке объектов, например, поиск человека, больного туберкулёзом, по флюорографии. Или задача признания пятна на экране приёмника радиолокационной станции бомбардировщиком, представляющем угрозу охраняемому объекту (в противовес стае гусей).
Поэтому класс, который представляет для нас интерес, называется «положительным», а оставшийся – «отрицательным».
Заметим, что для каждого объекта в выборке возможно 4 ситуации:
- мы предсказали положительную метку и угадали. Будет относить такие объекты к true positive (TP) группе (true – потому что предсказали мы правильно, а positive – потому что предсказали положительную метку);
- мы предсказали положительную метку, но ошиблись в своём предсказании – false positive (FP) (false, потому что предсказание было неправильным);
- мы предсказали отрицательную метку и угадали – true negative (TN);
- и наконец, мы предсказали отрицательную метку, но ошиблись – false negative (FN). Для удобства все эти 4 числа изображают в виде таблицы, которую называют confusion matrix (матрицей ошибок):

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

Пример
Попробуем воспользоваться введёнными метриками в боевом примере: сравним работу нескольких моделей классификации на Breast cancer wisconsin (diagnostic) dataset.
Объектами выборки являются фотографии биопсии грудных опухолей. С их помощью было сформировано признаковое описание, которое заключается в характеристиках ядер клеток (таких как радиус ядра, его текстура, симметричность). Положительным классом в такой постановке будут злокачественные опухоли, а отрицательным – доброкачественные.
Модель 1. Константное предсказание.
Решение задачи начнём с самого простого классификатора, который выдаёт на каждом объекте константное предсказание – самый часто встречающийся класс.
Зачем вообще замерять качество на такой модели?При разработке модели машинного обучения для проекта всегда желательно иметь некоторую baseline модель. Так нам будет легче проконтролировать, что наша более сложная модель действительно дает нам прирост качества.
from sklearn.datasets
import load_breast_cancer
the_data = load_breast_cancer()
# 0 – "доброкачественный"
# 1 – "злокачественный"
relabeled_target = 1 - the_data["target"]
from sklearn.model_selection import train_test_split
X = the_data["data"]
y = relabeled_target
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
from sklearn.dummy import DummyClassifier
dc_mf = DummyClassifier(strategy="most_frequent")
dc_mf.fit(X_train, y_train)
from sklearn.metrics import confusion_matrix
y_true = y_test y_pred = dc_mf.predict(X_test)
dc_mf_tn, dc_mf_fp, dc_mf_fn, dc_mf_tp = confusion_matrix(y_true, y_pred, labels = [0, 1]).ravel()
| Прогнозируемый класс + | Прогнозируемый класс — | |
|---|---|---|
| Истинный класс + | TP = 0 | FN = 53 |
| Истинный класс — | FP = 0 | TN = 90 |
Обучающие данные таковы, что наш dummy-классификатор все объекты записывает в отрицательный класс, то есть признаёт все опухоли доброкачественными. Такой наивный подход позволяет нам получить минимальный штраф за FP (действительно, нельзя ошибиться в предсказании, если положительный класс вообще не предсказывается), но и максимальный штраф за FN (в эту группу попадут все злокачественные опухоли).
Модель 2. Случайный лес.
Настало время воспользоваться всем арсеналом моделей машинного обучения, и начнём мы со случайного леса.
from sklearn.ensemble import RandomForestClassifier
rfc = RandomForestClassifier()
rfc.fit(X_train, y_train)
y_true = y_test
y_pred = rfc.predict(X_test)
rfc_tn, rfc_fp, rfc_fn, rfc_tp = confusion_matrix(y_true, y_pred, labels = [0, 1]).ravel()
| Прогнозируемый класс + | Прогнозируемый класс — | |
|---|---|---|
| Истинный класс + | TP = 52 | FN = 1 |
| Истинный класс — | FP = 4 | TN = 86 |
Можно сказать, что этот классификатор чему-то научился, т.к. главная диагональ матрицы стала содержать все объекты из отложенной выборки, за исключением 4 + 1 = 5 объектов (сравните с 0 + 53 объектами dummy-классификатора, все опухоли объявляющего доброкачественными).
Отметим, что вычисляя долю недиагональных элементов, мы приходим к метрике error rate, о которой мы говорили в самом начале:
$$text{Error rate} = frac{FP + FN}{ TP + TN + FP + FN}$$
тогда как доля объектов, попавших на главную диагональ – это как раз таки accuracy:
$$text{Accuracy} = frac{TP + TN}{ TP + TN + FP + FN}$$
Модель 3. Метод опорных векторов.
Давайте построим еще один классификатор на основе линейного метода опорных векторов.
Не забудьте привести признаки к единому масштабу, иначе численный алгоритм не сойдется к решению и мы получим гораздо более плохо работающее решающее правило. Попробуйте проделать это упражнение.
from sklearn.svm import LinearSVC
from sklearn.preprocessing import StandardScaler
ss = StandardScaler() ss.fit(X_train)
scaled_linsvc = LinearSVC(C=0.01,random_state=42)
scaled_linsvc.fit(ss.transform(X_train), y_train)
y_true = y_test
y_pred = scaled_linsvc.predict(ss.transform(X_test))
tn, fp, fn, tp = confusion_matrix(y_true, y_pred, labels = [0, 1]).ravel()
| Прогнозируемый класс + | Прогнозируемый класс — | |
|---|---|---|
| Истинный класс + | TP = 50 | FN = 3 |
| Истинный класс — | FP = 1 | TN = 89 |
Сравним результаты
Легко заметить, что каждая из двух моделей лучше классификатора-пустышки, однако давайте попробуем сравнить их между собой. С точки зрения error rate модели практически одинаковы: 5/143 для леса против 4/143 для SVM.
Посмотрим на структуру ошибок чуть более внимательно: лес – (FP = 4, FN = 1), SVM – (FP = 1, FN = 3). Какая из моделей предпочтительнее?
Замечание: Мы сравниваем несколько классификаторов на основании их предсказаний на отложенной выборке. Насколько ошибки данных классификаторов зависят от разбиения исходного набора данных? Иногда в процессе оценки качества мы будем получать модели, чьи показатели эффективности будут статистически неразличимыми.
Пусть мы учли предыдущее замечание и эти модели действительно статистически значимо ошибаются в разную сторону. Мы встретились с очевидной вещью: на матрицах нет отношения порядка. Когда мы сравнивали dummy-классификатор и случайный лес с помощью Accuracy, мы всю сложную структуру ошибок свели к одному числу, т.к. на вещественных числах отношение порядка есть. Сводить оценку модели к одному числу очень удобно, однако не стоит забывать, что у вашей модели есть много аспектов качества.
Что же всё-таки важнее уменьшить: FP или FN? Вернёмся к задаче: FP – доля доброкачественных опухолей, которым ошибочно присваивается метка злокачественной, а FN – доля злокачественных опухолей, которые классификатор пропускает. В такой постановке становится понятно, что при сравнении выиграет модель с меньшим FN (то есть лес в нашем примере), ведь каждая не обнаруженная опухоль может стоить человеческой жизни.
Рассмотрим теперь другую задачу: по данным о погоде предсказать, будет ли успешным запуск спутника. FN в такой постановке – это ошибочное предсказание неуспеха, то есть не более, чем упущенный шанс (если вас, конечно не уволят за срыв сроков). С FP всё серьёзней: если вы предскажете удачный запуск спутника, а на деле он потерпит крушение из-за погодных условий, то ваши потери будут в разы существеннее.
Итак, из примеров мы видим, что в текущем виде введенная нами доля ошибочных классификаций не даст нам возможности учесть неравную важность FP и FN. Поэтому введем две новые метрики: точность и полноту.
Точность и полнота
Accuracy — это метрика, которая характеризует качество модели, агрегированное по всем классам. Это полезно, когда классы для нас имеют одинаковое значение. В случае, если это не так, accuracy может быть обманчивой.
Рассмотрим ситуацию, когда положительный класс это событие редкое. Возьмем в качестве примера поисковую систему — в нашем хранилище хранятся миллиарды документов, а релевантных к конкретному поисковому запросу на несколько порядков меньше.
Пусть мы хотим решить задачу бинарной классификации «документ d релевантен по запросу q». Благодаря большому дисбалансу, Accuracy dummy-классификатора, объявляющего все документы нерелевантными, будет близка к единице. Напомним, что $text{Accuracy} = frac{TP + TN}{TP + TN + FP + FN}$, и в нашем случае высокое значение метрики будет обеспечено членом TN, в то время для пользователей более важен высокий TP.
Поэтому в случае ассиметрии классов, можно использовать метрики, которые не учитывают TN и ориентируются на TP.
Если мы рассмотрим долю правильно предсказанных положительных объектов среди всех объектов, предсказанных положительным классом, то мы получим метрику, которая называется точностью (precision)
$$color{#348FEA}{text{Precision} = frac{TP}{TP + FP}}$$
Интуитивно метрика показывает долю релевантных документов среди всех найденных классификатором. Чем меньше ложноположительных срабатываний будет допускать модель, тем больше будет её Precision.
Если же мы рассмотрим долю правильно найденных положительных объектов среди всех объектов положительного класса, то мы получим метрику, которая называется полнотой (recall)
$$color{#348FEA}{text{Recall} = frac{TP}{TP + FN}}$$
Интуитивно метрика показывает долю найденных документов из всех релевантных. Чем меньше ложно отрицательных срабатываний, тем выше recall модели.
Например, в задаче предсказания злокачественности опухоли точность показывает, сколько из определённых нами как злокачественные опухолей действительно являются злокачественными, а полнота – какую долю злокачественных опухолей нам удалось выявить.
Хорошее понимание происходящего даёт следующая картинка:
(источник картинки)
Recall@k, Precision@k
Метрики Recall и Precision хорошо подходят для задачи поиска «документ d релевантен запросу q», когда из списка рекомендованных алгоритмом документов нас интересует только первый. Но не всегда алгоритм машинного обучения вынужден работать в таких жестких условиях. Может быть такое, что вполне достаточно, что релевантный документ попал в первые k рекомендованных. Например, в интерфейсе выдачи первые три подсказки видны всегда одновременно и вообще не очень понятно, какой у них порядок. Тогда более честной оценкой качества алгоритма будет «в выдаче D размера k по запросу q нашлись релевантные документы». Для расчёта метрики по всей выборке объединим все выдачи и рассчитаем precision, recall как обычно подокументно.
F1-мера
Как мы уже отмечали ранее, модели очень удобно сравнивать, когда их качество выражено одним числом. В случае пары Precision-Recall существует популярный способ скомпоновать их в одну метрику — взять их среднее гармоническое. Данный показатель эффективности исторически носит название F1-меры (F1-measure).
$$
color{#348FEA}{F_1 = frac{2}{frac{1}{Recall} + frac{1}{Precision}}} = $$
$$ = 2 frac{Recall cdot Precision }{Recall + Precision} = frac
{TP} {TP + frac{FP + FN}{2}}
$$
Стоит иметь в виду, что F1-мера предполагает одинаковую важность Precision и Recall, если одна из этих метрик для вас приоритетнее, то можно воспользоваться $F_{beta}$ мерой:
$$
F_{beta} = (beta^2 + 1) frac{Recall cdot Precision }{Recall + beta^2Precision}
$$
Бинарная классификация: вероятности классов
Многие модели бинарной классификации устроены так, что класс объекта получается бинаризацией выхода классификатора по некоторому фиксированному порогу:
$$fleft(x ; w, w_{0}right)=mathbb{I}left[g(x, w) > w_{0}right].$$
Например, модель логистической регрессии возвращает оценку вероятности принадлежности примера к положительному классу. Другие модели бинарной классификации обычно возвращают произвольные вещественные значения, но существуют техники, называемые калибровкой классификатора, которые позволяют преобразовать предсказания в более или менее корректную оценку вероятности принадлежности к положительному классу.
Как оценить качество предсказываемых вероятностей, если именно они являются нашей конечной целью? Общепринятой мерой является логистическая функция потерь, которую мы изучали раньше, когда говорили об устройстве некоторых методов классификации (например уже упоминавшейся логистической регрессии).
Если же нашей целью является построение прогноза в терминах метки класса, то нам нужно учесть, что в зависимости от порога мы будем получать разные предсказания и разное качество на отложенной выборке. Так, чем ниже порог отсечения, тем больше объектов модель будет относить к положительному классу. Как в этом случае оценить качество модели?
AUC
Пусть мы хотим учитывать ошибки на объектах обоих классов. При уменьшении порога отсечения мы будем находить (правильно предсказывать) всё большее число положительных объектов, но также и неправильно предсказывать положительную метку на всё большем числе отрицательных объектов. Естественным кажется ввести две метрики TPR и FPR:
TPR (true positive rate) – это полнота, доля положительных объектов, правильно предсказанных положительными:
$$ TPR = frac{TP}{P} = frac{TP}{TP + FN} $$
FPR (false positive rate) – это доля отрицательных объектов, неправильно предсказанных положительными:
$$FPR = frac{FP}{N} = frac{FP}{FP + TN}$$
Обе эти величины растут при уменьшении порога. Кривая в осях TPR/FPR, которая получается при варьировании порога, исторически называется ROC-кривой (receiver operating characteristics curve, сокращённо ROC curve). Следующий график поможет вам понять поведение ROC-кривой.
Желтая и синяя кривые показывают распределение предсказаний классификатора на объектах положительного и отрицательного классов соответственно. То есть значения на оси X (на графике с двумя гауссианами) мы получаем из классификатора. Если классификатор идеальный (две кривые разделимы по оси X), то на правом графике мы получаем ROC-кривую (0,0)->(0,1)->(1,1) (убедитесь сами!), площадь под которой равна 1. Если классификатор случайный (предсказывает одинаковые метки положительным и отрицательным объектам), то мы получаем ROC-кривую (0,0)->(1,1), площадь под которой равна 0.5. Поэкспериментируйте с разными вариантами распределения предсказаний по классам и посмотрите, как меняется ROC-кривая.
Чем лучше классификатор разделяет два класса, тем больше площадь (area under curve) под ROC-кривой – и мы можем использовать её в качестве метрики. Эта метрика называется AUC и она работает благодаря следующему свойству ROC-кривой:
AUC равен доле пар объектов вида (объект класса 1, объект класса 0), которые алгоритм верно упорядочил, т.е. предсказание классификатора на первом объекте больше:
$$
color{#348FEA}{operatorname{AUC} = frac{sumlimits_{i = 1}^{N} sumlimits_{j = 1}^{N}mathbb{I}[y_i < y_j] I^{prime}[f(x_{i}) < f(x_{j})]}{sumlimits_{i = 1}^{N} sumlimits_{j = 1}^{N}mathbb{I}[y_i < y_j]}}
$$
$$
I^{prime}left[f(x_{i}) < f(x_{j})right]=
left{
begin{array}{ll}
0, & f(x_{i}) > f(x_{j}) \
0.5 & f(x_{i}) = f(x_{j}) \
1, & f(x_{i}) < f(x_{j})
end{array}
right.
$$
$$
Ileft[y_{i}< y_{j}right]=
left{
begin{array}{ll}
0, & y_{i} geq y_{j} \
1, & y_{i} < y_{j}
end{array}
right.
$$
Чтобы детальнее разобраться, почему это так, советуем вам обратиться к материалам А.Г.Дьяконова.
В каких случаях лучше отдать предпочтение этой метрике? Рассмотрим следующую задачу: некоторый сотовый оператор хочет научиться предсказывать, будет ли клиент пользоваться его услугами через месяц. На первый взгляд кажется, что задача сводится к бинарной классификации с метками 1, если клиент останется с компанией и $0$ – иначе.
Однако если копнуть глубже в процессы компании, то окажется, что такие метки практически бесполезны. Компании скорее интересно упорядочить клиентов по вероятности прекращения обслуживания и в зависимости от этого применять разные варианты удержания: кому-то прислать скидочный купон от партнёра, кому-то предложить скидку на следующий месяц, а кому-то и новый тариф на особых условиях.
Таким образом, в любой задаче, где нам важна не метка сама по себе, а правильный порядок на объектах, имеет смысл применять AUC.
Утверждение выше может вызывать у вас желание использовать AUC в качестве метрики в задачах ранжирования, но мы призываем вас быть аккуратными.
ПодробнееУтверждение выше может вызывать у вас желание использовать AUC в качестве метрики в задачах ранжирования, но мы призываем вас быть аккуратными.» details=»Продемонстрируем это на следующем примере: пусть наша выборка состоит из $9100$ объектов класса $0$ и $10$ объектов класса $1$, и модель расположила их следующим образом:
$$underbrace{0 dots 0}_{9000} ~ underbrace{1 dots 1}_{10} ~ underbrace{0 dots 0}_{100}$$
Тогда AUC будет близка к единице: количество пар правильно расположенных объектов будет порядка $90000$, в то время как общее количество пар порядка $91000$.
Однако самыми высокими по вероятности положительного класса будут совсем не те объекты, которые мы ожидаем.
Average Precision
Будем постепенно уменьшать порог бинаризации. При этом полнота будет расти от $0$ до $1$, так как будет увеличиваться количество объектов, которым мы приписываем положительный класс (а количество объектов, на самом деле относящихся к положительному классу, очевидно, меняться не будет). Про точность же нельзя сказать ничего определённого, но мы понимаем, что скорее всего она будет выше при более высоком пороге отсечения (мы оставим только объекты, в которых модель «уверена» больше всего). Варьируя порог и пересчитывая значения Precision и Recall на каждом пороге, мы получим некоторую кривую примерно следующего вида:
(источник картинки)
Рассмотрим среднее значение точности (оно равно площади под кривой точность-полнота):
$$ text { AP }=int_{0}^{1} p(r) d r$$
Получим показатель эффективности, который называется average precision. Как в случае матрицы ошибок мы переходили к скалярным показателям эффективности, так и в случае с кривой точность-полнота мы охарактеризовали ее в виде числа.
Многоклассовая классификация
Если классов становится больше двух, расчёт метрик усложняется. Если задача классификации на $K$ классов ставится как $K$ задач об отделении класса $i$ от остальных ($i=1,ldots,K$), то для каждой из них можно посчитать свою матрицу ошибок. Затем есть два варианта получения итогового значения метрики из $K$ матриц ошибок:
- Усредняем элементы матрицы ошибок (TP, FP, TN, FN) между бинарными классификаторами, например $TP = frac{1}{K}sum_{i=1}^{K}TP_i$. Затем по одной усреднённой матрице ошибок считаем Precision, Recall, F-меру. Это называют микроусреднением.
- Считаем Precision, Recall для каждого классификатора отдельно, а потом усредняем. Это называют макроусреднением.
Порядок усреднения влияет на результат в случае дисбаланса классов. Показатели TP, FP, FN — это счётчики объектов. Пусть некоторый класс обладает маленькой мощностью (обозначим её $M$). Тогда значения TP и FN при классификации этого класса против остальных будут не больше $M$, то есть тоже маленькие. Про FP мы ничего уверенно сказать не можем, но скорее всего при дисбалансе классов классификатор не будет предсказывать редкий класс слишком часто, потому что есть большая вероятность ошибиться. Так что FP тоже мало. Поэтому усреднение первым способом сделает вклад маленького класса в общую метрику незаметным. А при усреднении вторым способом среднее считается уже для нормированных величин, так что вклад каждого класса будет одинаковым.
Рассмотрим пример. Пусть есть датасет из объектов трёх цветов: желтого, зелёного и синего. Желтого и зелёного цветов почти поровну — 21 и 20 объектов соответственно, а синих объектов всего 4.

Модель по очереди для каждого цвета пытается отделить объекты этого цвета от объектов оставшихся двух цветов. Результаты классификации проиллюстрированы матрицей ошибок. Модель «покрасила» в жёлтый 25 объектов, 20 из которых были действительно жёлтыми (левый столбец матрицы). В синий был «покрашен» только один объект, который на самом деле жёлтый (средний столбец матрицы). В зелёный — 19 объектов, все на самом деле зелёные (правый столбец матрицы).

Посчитаем Precision классификации двумя способами:
- С помощью микроусреднения получаем $$
text{Precision} = frac{dfrac{1}{3}left(20 + 0 + 19right)}{dfrac{1}{3}left(20 + 0 + 19right) + dfrac{1}{3}left(5 + 1 + 0right)} = 0.87
$$ - С помощью макроусреднения получаем $$
text{Precision} = dfrac{1}{3}left( frac{20}{20 + 5} + frac{0}{0 + 1} + frac{19}{19 + 0}right) = 0.6
$$
Видим, что макроусреднение лучше отражает тот факт, что синий цвет, которого в датасете было совсем мало, модель практически игнорирует.
Как оптимизировать метрики классификации?
Пусть мы выбрали, что метрика качества алгоритма будет $F(a(X), Y)$. Тогда мы хотим обучить модель так, чтобы $F$ на валидационной выборке была минимальная/максимальная. Лучший способ добиться минимизации метрики $F$ — оптимизировать её напрямую, то есть выбрать в качестве функции потерь ту же $F(a(X), Y)$. К сожалению, это не всегда возможно. Рассмотрим, как оптимизировать метрики иначе.
Метрики precision и recall невозможно оптимизировать напрямую, потому что эти метрики нельзя рассчитать на одном объекте, а затем усреднить. Они зависят от того, какими были правильная метка класса и ответ алгоритма на всех объектах. Чтобы понять, как оптимизировать precision, recall, рассмотрим, как расчитать эти метрики на отложенной выборке. Пусть модель обучена на стандартную для классификации функцию потерь (LogLoss). Для получения меток класса специалист по машинному обучению сначала применяет на объектах модель и получает вещественные предсказания модели ($p_i in left(0, 1right)$). Затем предсказания бинаризуются по порогу, выбранному специалистом: если предсказание на объекте больше порога, то метка класса 1 (или «положительная»), если меньше — 0 (или «отрицательная»). Рассмотрим, что будет с метриками precision, recall в крайних положениях порога.
- Пусть порог равен нулю. Тогда всем объектам будет присвоена положительная метка. Следовательно, все объекты будут либо TP, либо FP, потому что отрицательных предсказаний нет, $TP + FP = N$, где $N$ — размер выборки. Также все объекты, у которых метка на самом деле 1, попадут в TP. По формуле точность $text{Precision} = frac{TP}{TP + FP} = frac1N sum_{i = 1}^N mathbb{I} left[ y_i = 1 right]$ равна среднему таргету в выборке. А полнота $text{Recall} = frac{TP}{TP + FN} = frac{TP}{TP + 0} = 1$ равна единице.
- Пусть теперь порог равен единице. Тогда ни один объект не будет назван положительным, $TP = FP = 0$. Все объекты с меткой класса 1 попадут в FN. Если есть хотя бы один такой объект, то есть $FN ne 0$, будет верна формула $text{Recall} = frac{TP}{TP + FN} = frac{0}{0+ FN} = 0$. То есть при пороге единица, полнота равна нулю. Теперь посмотрим на точность. Формула для Precision состоит только из счётчиков положительных ответов модели (TP, FP). При единичном пороге они оба равны нулю, $text{Precision} = frac{TP}{TP + FP} = frac{0}{0 + 0}$то есть при единичном пороге точность неопределена. Пусть мы отступили чуть-чуть назад по порогу, чтобы хотя бы несколько объектов были названы моделью положительными. Скорее всего это будут самые «простые» объекты, которые модель распознает хорошо, потому что её предсказание близко к единице. В этом предположении $FP approx 0$. Тогда точность $text{Precision} = frac{TP}{TP + FP} approx frac{TP}{TP + 0} approx 1$ будет близка к единице.
Изменяя порог, между крайними положениями, получим графики Precision и Recall, которые выглядят как-то так:

Recall меняется от единицы до нуля, а Precision от среднего тагрета до какого-то другого значения (нет гарантий, что график монотонный).
Итого оптимизация precision и recall происходит так:
- Модель обучается на стандартную функцию потерь (например, LogLoss).
- Используя вещественные предсказания на валидационной выборке, перебирая разные пороги от 0 до 1, получаем графики метрик в зависимости от порога.
- Выбираем нужное сочетание точности и полноты.
Пусть теперь мы хотим максимизировать метрику AUC. Стандартный метод оптимизации, градиентный спуск, предполагает, что функция потерь дифференцируема. AUC этим качеством не обладает, то есть мы не можем оптимизировать её напрямую. Поэтому для метрики AUC приходится изменять оптимизационную задачу. Метрика AUC считает долю верно упорядоченных пар. Значит от исходной выборки можно перейти к выборке упорядоченных пар объектов. На этой выборке ставится задача классификации: метка класса 1 соответствует правильно упорядоченной паре, 0 — неправильно. Новой метрикой становится accuracy — доля правильно классифицированных объектов, то есть доля правильно упорядоченных пар. Оптимизировать accuracy можно по той же схеме, что и precision, recall: обучаем модель на LogLoss и предсказываем вероятности положительной метки у объекта выборки, считаем accuracy для разных порогов по вероятности и выбираем понравившийся.
Регрессия
В задачах регрессии целевая метка у нас имеет потенциально бесконечное число значений. И природа этих значений, обычно, связана с каким-то процессом измерений:
- величина температуры в определенный момент времени на метеостанции
- количество прочтений статьи на сайте
- количество проданных бананов в конкретном магазине, сети магазинов или стране
- дебит добывающей скважины на нефтегазовом месторождении за месяц и т.п.
Мы видим, что иногда метка это целое число, а иногда произвольное вещественное число. Обычно случаи целочисленных меток моделируют так, словно это просто обычное вещественное число. При таком подходе может оказаться так, что модель A лучше модели B по некоторой метрике, но при этом предсказания у модели A могут быть не целыми. Если в бизнес-задаче ожидается именно целочисленный ответ, то и оценивать нужно огрубление.
Общая рекомендация такова: оценивайте весь каскад решающих правил: и те «внутренние», которые вы получаете в результате обучения, и те «итоговые», которые вы отдаёте бизнес-заказчику.
Например, вы можете быть удовлетворены, что стали ошибаться не во втором, а только в третьем знаке после запятой при предсказании погоды. Но сами погодные данные измеряются с точностью до десятых долей градуса, а пользователь и вовсе может интересоваться лишь целым числом градусов.
Итак, напомним постановку задачи регрессии: нам нужно по обучающей выборке ${(x_i, y_i)}_{i=1}^N$, где $y_i in mathbb{R}$ построить модель f(x).
Величину $ e_i = f(x_i) — y_i $ называют ошибкой на объекте i или регрессионным остатком.
Весь набор ошибок на отложенной выборке может служить аналогом матрицы ошибок из задачи классификации. А именно, когда мы рассматриваем две разные модели, то, глядя на то, как и на каких объектах они ошиблись, мы можем прийти к выводу, что для решения бизнес-задачи нам выгоднее взять ту или иную модель. И, аналогично со случаем бинарной классификации, мы можем начать строить агрегаты от вектора ошибок, получая тем самым разные метрики.
MSE, RMSE, $R^2$
MSE – одна из самых популярных метрик в задаче регрессии. Она уже знакома вам, т.к. применяется в качестве функции потерь (или входит в ее состав) во многих ранее рассмотренных методах.
$$ MSE(y^{true}, y^{pred}) = frac1Nsum_{i=1}^{N} (y_i — f(x_i))^2 $$
Иногда для того, чтобы показатель эффективности MSE имел размерность исходных данных, из него извлекают квадратный корень и получают показатель эффективности RMSE.
MSE неограничен сверху, и может быть нелегко понять, насколько «хорошим» или «плохим» является то или иное его значение. Чтобы появились какие-то ориентиры, делают следующее:
-
Берут наилучшее константное предсказание с точки зрения MSE — среднее арифметическое меток $bar{y}$. При этом чтобы не было подглядывания в test, среднее нужно вычислять по обучающей выборке
-
Рассматривают в качестве показателя ошибки:
$$ R^2 = 1 — frac{sum_{i=1}^{N} (y_i — f(x_i))^2}{sum_{i=1}^{N} (y_i — bar{y})^2}.$$
У идеального решающего правила $R^2$ равен $1$, у наилучшего константного предсказания он равен $0$ на обучающей выборке. Можно заметить, что $R^2$ показывает, какая доля дисперсии таргетов (знаменатель) объяснена моделью.
MSE квадратично штрафует за большие ошибки на объектах. Мы уже видели проявление этого при обучении моделей методом минимизации квадратичных ошибок – там это проявлялось в том, что модель старалась хорошо подстроиться под выбросы.
Пусть теперь мы хотим использовать MSE для оценки наших регрессионных моделей. Если большие ошибки для нас действительно неприемлемы, то квадратичный штраф за них — очень полезное свойство (и его даже можно усиливать, повышая степень, в которую мы возводим ошибку на объекте). Однако если в наших тестовых данных присутствуют выбросы, то нам будет сложно объективно сравнить модели между собой: ошибки на выбросах будет маскировать различия в ошибках на основном множестве объектов.
Таким образом, если мы будем сравнивать две модели при помощи MSE, у нас будет выигрывать та модель, у которой меньше ошибка на объектах-выбросах, а это, скорее всего, не то, чего требует от нас наша бизнес-задача.
История из жизни про бананы и квадратичный штраф за ошибкуИз-за неверно введенных данных метка одного из объектов оказалась в 100 раз больше реального значения. Моделировалась величина при помощи градиентного бустинга над деревьями решений. Функция потерь была MSE.
Однажды уже во время эксплуатации случилось ч.п.: у нас появились предсказания, в 100 раз превышающие допустимые из соображений физического смысла значения. Представьте себе, например, что вместо обычных 4 ящиков бананов система предлагала поставить в магазин 400. Были распечатаны все деревья из ансамбля, и мы увидели, что постепенно число ящиков действительно увеличивалось до прогнозных 400.
Было решено проверить гипотезу, что был выброс в данных для обучения. Так оно и оказалось: всего одна точка давала такую потерю на объекте, что алгоритм обучения решил, что лучше переобучиться под этот выброс, чем смириться с большим штрафом на этом объекте. А в эксплуатации у нас возникли точки, которые плюс-минус попадали в такие же листья ансамбля, что и объект-выброс.
Избежать такого рода проблем можно двумя способами: внимательнее контролируя качество данных или адаптировав функцию потерь.
Аналогично, можно поступать и в случае, когда мы разрабатываем метрику качества: менее жёстко штрафовать за большие отклонения от истинного таргета.
MAE
Использовать RMSE для сравнения моделей на выборках с большим количеством выбросов может быть неудобно. В таких случаях прибегают к также знакомой вам в качестве функции потери метрике MAE (mean absolute error):
$$ MAE(y^{true}, y^{pred}) = frac{1}{N}sum_{i=1}^{N} left|y_i — f(x_i)right| $$
Метрики, учитывающие относительные ошибки
И MSE и MAE считаются как сумма абсолютных ошибок на объектах.
Рассмотрим следующую задачу: мы хотим спрогнозировать спрос товаров на следующий месяц. Пусть у нас есть два продукта: продукт A продаётся в количестве 100 штук, а продукт В в количестве 10 штук. И пусть базовая модель предсказывает количество продаж продукта A как 98 штук, а продукта B как 8 штук. Ошибки на этих объектах добавляют 4 штрафных единицы в MAE.
И есть 2 модели-кандидата на улучшение. Первая предсказывает товар А 99 штук, а товар B 8 штук. Вторая предсказывает товар А 98 штук, а товар B 9 штук.
Обе модели улучшают MAE базовой модели на 1 единицу. Однако, с точки зрения бизнес-заказчика вторая модель может оказаться предпочтительнее, т.к. предсказание продажи редких товаров может быть приоритетнее. Один из способов учесть такое требование – рассматривать не абсолютную, а относительную ошибку на объектах.
MAPE, SMAPE
Когда речь заходит об относительных ошибках, сразу возникает вопрос: что мы будем ставить в знаменатель?
В метрике MAPE (mean absolute percentage error) в знаменатель помещают целевое значение:
$$ MAPE(y^{true}, y^{pred}) = frac{1}{N} sum_{i=1}^{N} frac{ left|y_i — f(x_i)right|}{left|y_iright|} $$
С особым случаем, когда в знаменателе оказывается $0$, обычно поступают «инженерным» способом: или выдают за непредсказание $0$ на таком объекте большой, но фиксированный штраф, или пытаются застраховаться от подобного на уровне формулы и переходят к метрике SMAPE (symmetric mean absolute percentage error):
$$ SMAPE(y^{true}, y^{pred}) = frac{1}{N} sum_{i=1}^{N} frac{ 2 left|y_i — f(x_i)right|}{y_i + f(x_i)} $$
Если же предсказывается ноль, штраф считаем нулевым.
Таким переходом от абсолютных ошибок на объекте к относительным мы сделали объекты в тестовой выборке равнозначными: даже если мы делаем абсурдно большое предсказание, на фоне которого истинная метка теряется, мы получаем штраф за этот объект порядка 1 в случае MAPE и 2 в случае SMAPE.
WAPE
Как и любая другая метрика, MAPE имеет свои границы применимости: например, она плохо справляется с прогнозом спроса на товары с прерывистыми продажами. Рассмотрим такой пример:
| Понедельник | Вторник | Среда | |
|---|---|---|---|
| Прогноз | 55 | 2 | 50 |
| Продажи | 50 | 1 | 50 |
| MAPE | 10% | 100% | 0% |
Среднее MAPE – 36.7%, что не очень отражает реальную ситуацию, ведь два дня мы предсказывали с хорошей точностью. В таких ситуациях помогает WAPE (weighted average percentage error):
$$ WAPE(y^{true}, y^{pred}) = frac{sum_{i=1}^{N} left|y_i — f(x_i)right|}{sum_{i=1}^{N} left|y_iright|} $$
Если мы предсказываем идеально, то WAPE = 0, если все предсказания отдаём нулевыми, то WAPE = 1.
В нашем примере получим WAPE = 5.9%
RMSLE
Альтернативный способ уйти от абсолютных ошибок к относительным предлагает метрика RMSLE (root mean squared logarithmic error):
$$ RMSLE(y^{true}, y^{pred}| c) = sqrt{ frac{1}{N} sum_{i=1}^N left(vphantom{frac12}log{left(y_i + c right)} — log{left(f(x_i) + c right)}right)^2 } $$
где нормировочная константа $c$ вводится искусственно, чтобы не брать логарифм от нуля. Также по построению видно, что метрика пригодна лишь для неотрицательных меток.
Веса в метриках
Все вышеописанные метрики легко допускают введение весов для объектов. Если мы из каких-то соображений можем определить стоимость ошибки на объекте, можно брать эту величину в качестве веса. Например, в задаче предсказания спроса в качестве веса можно использовать стоимость объекта.
Доля предсказаний с абсолютными ошибками больше, чем d
Еще одним способом охарактеризовать качество модели в задаче регрессии является доля предсказаний с абсолютными ошибками больше заданного порога $d$:
$$frac{1}{N} sum_{i=1}^{N} mathbb{I}left[ left| y_i — f(x_i) right| > d right] $$
Например, можно считать, что прогноз погоды сбылся, если ошибка предсказания составила меньше 1/2/3 градусов. Тогда рассматриваемая метрика покажет, в какой доле случаев прогноз не сбылся.
Как оптимизировать метрики регрессии?
Пусть мы выбрали, что метрика качества алгоритма будет $F(a(X), Y)$. Тогда мы хотим обучить модель так, чтобы F на валидационной выборке была минимальная/максимальная. Аналогично задачам классификации лучший способ добиться минимизации метрики $F$ — выбрать в качестве функции потерь ту же $F(a(X), Y)$. К счастью, основные метрики для регрессии: MSE, RMSE, MAE можно оптимизировать напрямую. С формальной точки зрения MAE не дифференцируема, так как там присутствует модуль, чья производная не определена в нуле. На практике для этого выколотого случая в коде можно возвращать ноль.
Для оптимизации MAPE придётся изменять оптимизационную задачу. Оптимизацию MAPE можно представить как оптимизацию MAE, где объектам выборки присвоен вес $frac{1}{vert y_ivert}$.


