Мы начинаем урок, посвященный метрикам качества. В нем мы поговорим о том, как измерять качество алгоритмов в классификации регрессии и какие аспекты качества могут возникнуть в тех или иных задачах. И давайте сначала обсудим, где могут использоваться метрики качества в машинном обучении. Первое применение — это функционалы ошибки, которую мы оптимизируем при обучении алгоритма на обучающей выборке. С этим мы уже много раз сталкивались. Мы использовали, например, среднеквадратичную ошибку, или долю неправильных ответов, или говорили про логистическую функцию — понятие и классификация. Также вы можете обучать алгоритм, используя один функционал, одну метрику качества, а вот проверять его качество на отложенной выборке или на кросс-валидации с помощью другой метрики, например, если вы знаете, что в вашей задаче много выбросов, то нужно использовать какую-то метрику, которая слабо штрафует за ошибки на таких выбросах. Далее, когда вы выбрали параметры и гиперпараметры алгоритма, и у вас есть финальная модель, которую вы собираетесь использовать, то вы можете захотеть измерить еще какую-то, третью метрику качества, которая отражает ценность, например, для бизнеса вашей модели. Скажем, если вы решаете задачу медицинской диагностики, то есть строите модель, которая будет определять: болен или нет пациент тем или иным заболеванием, то вы можете интересоваться: какую долю всех больных пациентов ваша модель сможет обнаружить, сможет понять, что у них есть проблема. Дайте поговорим о том, какие метрики качества бывают в регрессии. Наше видео именно об этом. И первая метрика, о которой мы поговорим, с которой мы уже много раз сталкивались — это среднеквадратичная ошибка, она вычисляется очень просто: мы вычисляем отклонения, прогнозы нашего алгоритма от истинного ответа на каждом объекте выборки, возводим в квадрат это отклонение и усредняем по всем объектам обучающей или какой-то другой выборки. Преимущество этого функционала в том, что его легко оптимизировать. Если мы используем линейную модель, то у него даже есть аналитическое решение, у этой задачи оптимизации. Но при этом есть и проблема: данный функционал возводит отклонение в квадрат. Таким образом, если отклонение сильное, если этот объект — выброс и ответ на нем не очень логичный, то штраф за отклонение, соответственно, на этом объекте будет очень сильный. Таким образом алгоритм может настроиться на выборосы, может дать хороший ответ на тех объектах, на который не имеет смысла настраиваться. Похожий функционал качества — это средняя абсолютная ошибка. В ней мы вычисляем модуль отклонения прогноза от истинного ответа и усредняем это по всем объектам обучающей выборки. Этот функционал немного сложнее. Его тяжелее оптимизировать из-за того, что у модуля производная есть не везде, в нуле она отсутствует. Но при этом здесь считается модуль отклонения, а не квадрат, и поэтому штраф за сильное отклонение гораздо меньше. Это функционал гораздо более устойчив к выбросам. У среднеквадратичной ошибки есть одна модификация — коэффициент детерминации, которая позволяет интерпретировать свое значение. Давайте сначала обсудим, как он задается. Основная часть коэффициента детерминации, или коэффициента R квадрат, — это дробь, у которой в числителе стоит сумма квадратов отклонений прогнозов алгоритма от истинных ответов, то есть практически среднеквадратичная ошибка, только без усреднения, просто сумма. В знаменателе стоит сумма квадратов отклонений истинных ответов от среднего истинного ответа, вычисленного по всем... по всей обучающей выборке. При этом средний истинный ответ мы обозначаем как y с верхней чертой. После того как эта дробь посчитана, мы вычитаем ее из 1. И получаем коэффициент детерминации. У этого коэффициента есть одна интересная интерпретация: он показывает, какую долю дисперсии во всем целевом векторе y наша модель смогла объяснить. Иными словами, какую долю разнообразия ответов наша модель смогла объяснить или предсказать. Как я уже говорил, коэффициент детерминации можно интерпретировать. Давайте разберемся, как именно. Оказывается, что для разумных моделей — что такое разумная модель, скажем чуть позже — коэффициент детерминации находится между 0 и 1, в отрезке от 0 до 1. При этом, если он равен 1, то это идеальная модель, которая идеально угадывает ответы на обучающей выборке. Если коэффициент детерминации равен 0, это означает, что его качество совпадает с оптимальным константным алгоритмом. Оптимальный константный алгоритм — это тот, который на всех объектах возвращает средний ответ по всей обучающей выборке, то есть y с верхней чертой, который мы вводили на прошлом слайде. Если коэффициент детерминации находится между 0 и 1, то можно говорить о том, насколько он лучше, чем константная модель, и насколько он хуже, чем идеальная модель. Например, если он равен 0,2, то, скорей всего, он не очень хороший, ближе к константной модели. Если же коэффициент детерминации алгоритма равен 0,9, скорей всего, это хороший алгоритм, который близок к оптимальному. Коэффициент детерминации может быть меньше 0, если алгоритм работает хуже, чем константный, это те алгоритмы, которые никогда не нужно рассматривать. Пока что мы говорили о метриках качества, которые симметричные, которые одинаково штрафуют как за недопрогноз, так и за перепрогноз, то есть как за завышение, так и за занижение прогноза. При этом бывают задачи, где эти ошибки имеют разную цену. Давайте разберем простой пример: представим, что мы торгуем ноутбуками одной и той же марки. И хотим предсказывать, каков будет спрос на эти ноутбуки в следующем месяце. Если наш прогноз будет занижен, то есть мы предскажем спрос ниже, чем он будет на самом деле, это очень плохо. Во-первых, мы потеряем лояльность клиентов, они будут приходить к нам за покупками, но мы не сможем продать им этот ноутбук, потому что у нас они закончились, клиенты, скорее всего, разочаруются в нас. Также мы теряем потенциальную прибыль — мы могли бы заработать, продав эти ноутбуки, но нам нечего было продать. Поэтому недопрогноз, заниженная прогнозная задача — это плохо. Если же будет иметь место перепрогноз, завышенный прогноз, то мы удовлетворим всех клиентов, но при этом у нас будут остатки ноутбуков, у нас останется несколько ноутбуков непроданными. Это не очень плохо. Да, мы потратим деньги на хранение, но ноутбуки — это довольно компактные вещи, поэтому они не займут много места. Итак, в этой задаче функция потери должна быть несимметричной, мы должны сильнее штрафовать за недопрогноз, чем за перепрогноз. В этом случае хорошо подходит квантильная ошибка, квантильная функция потерь. Давайте разберемся, как она задается. Она представляет собой сумму по всем объектам обучающей выборки вот таких сложных выражений. Давайте поймем, что они означают. Здесь стоит отклонение прогноза алгоритма от истинного ответа: yi-тое − a(xi-того), и это отклонение домножается либо на число τ (тау), если имеет место недопрогноз, то есть если прогноз меньше истинного ответа, либо на число τ − 1, если имеет место перепрогноз, то есть ответ алгоритма, прогноз, больше истинного ответа. τ — это некоторый параметр данного функционала, который варьируется от 0 до 1. Если нарисовать зависимость ошибки, посчитанной данным образом, от отклонения yi-тое − a(xi-тое), то получим вот такую картину. Видно, что эта функция потерь действительно несимметричная. При этом если τ большое, если τ близко к 1, то мы сильнее боимся недопрогноза, мы сильнее боимся занизить прогноз, если τ близко к 0, мы боимся перепрогноза. Чтобы разобраться, почему эта функция потерь называется квантильной, давайте поговорим про вероятностный смысл, вероятностную интерпретацию этих функционалов. Представьте следующую ситуацию: в нашей выборке один и тот же объект x с одним и тем же признаковым описанием повторяется n раз. Это... такая ситуация вполне может возникнуть в ряде задач. При этом ответы на этих n повторах разные, они немного отличаются друг от друга, обозначим их через y1, ..., yn. Такое может возникнуть, например, при измерении роста человека. Человек один и тот же, но при этом результат конкретного измерения зависит от показателей, от шума прибора, которым мы измеряем рост, и от самого человека, он может выпрямиться или сгорбиться, например, и из-за этого рост получится немножко другим, чем в прошлый раз. Объект один и тот же, а ответы немного разные. При этом обратите внимание: наш алгоритм должен на одном и том же объекте возвращать один и тот же прогноз. Таким образом возникает вопрос: какой ответ алгоритма на объекте x оптимален для данной выборки y1, ..., yn с точки зрения того или иного функционала ошибки. Давайте разберемся! Оказывается, если мы используем среднеквадратичную ошибку, то оптимальным прогнозом будет просто средний ответ на этом объекте, то есть среднее по y1, ..., yn. Если мы используем среднюю абсолютную ошибку, то оптимальным прогнозом будет медиана, то есть мы считаем медиану по нашей выборке. Известно, что медиана более устойчива к выборосам, чем среднее. Если же мы используем квантильную регрессию с параметром τ, то оказывается, что оптимальным прогнозом будет τ-квантиль. Это очень логично. Если τ — большое, мы боимся недопрогноза и будем брать большую квантиль, будем завышать прогноз, будем брать его выше, чем среднее значение y-ков. Если же τ — маленькое, и мы боимся перепрогноза, то мы будем брать маленькую квантиль, специально занижать прогноз, делать его ниже, чем среднее. Итак, мы поговорили о том, какие метрики качества бывают в задачах регрессии. Поговорили про среднеквадратичную среднюю абсолютную ошибку и про коэффициент детерминации, который является интерпретируемой версией среднеквадратичной ошибки. Также мы обсудили квантильную функцию потерь, которая является несимметричной и может оказаться важной в ряде задач. А в следующем видео мы поговорим о том, как измерять качество в задачах классификации.