Правильнее сказать «качество» работы модели, потому что «точность» — это один из возможных ответов на вопрос ;)
При решении задачи
обучения с учителем (когда мы обучаем модель на размеченных данных — ранее известном описании набора некоторых объектов, представляющем собой определенный набор признаков для этих объектов, таких, которые могут быть определены на момент прогнозирования для новых объектов, и целевой признак, который нам и нужно будет прогнозировать для новых объектов)
вопрос оценки качества обучаемых моделей — важный момент, с которым нужно разобраться в первую очередь после постановки задачи.
Обычно для этого используются некоторые метрики, позволяющие количественно оценить качество модели по результатам её работы. Это позволяет нам сравнивать качество разных моделей путём соотношения численных оценок для них. К метрикам мы вернёмся детальнее чуть дальше.
Результаты работы модели мы, по идее, можем оценить только спустя какое-то время, когда для новых объектов, для которых мы получали с её помощью предсказания, будут известны реальные значения целевого признака. Логично, что при этом единичное предсказание будет не показательным — модель могла «угадать» ответ, но реальные зависимости при этом она отражает плохо, или наоборот. Тут нужно накопить какую-то статистику, что потребует ещё какого-то времени, в течение которого бизнес не сможет использовать нашу модель (мы же пока не знаем, является ли она в принципе качественной, поэтому пока использовать её не стоит) и будет терять прибыль. Чтобы не терять время и деньги бизнеса, обычно какая-то часть доступных данных отделяется в специальную отложенную выборку, которая никак не используется при обучении и настройке моделей, а применяется только для итоговой оценки качества, её чаще всего называют тестовой выборкой. Тогда такие объекты для модели будут новыми, а мы при этом будем знать правильные ответы для них. Использовать для тестирования модели объекты из обучающего набора данных не стоит, так как модель на знакомых примерах, как правило, демонстрирует более хорошие показатели. Зато их можно использовать для контроля переобученности модели: некоторые алгоритмы могут «переобучаться», хорошо описывая именно конкретную обучающую выборку, но плохо обобщая при этом реальные зависимости — тогда качество на обучающей выборке и тестовой будет катастрофически различаться.
Теперь рассмотрим детальнее сами метрики. Тут нужно сначала детальнее разобраться в обучении с учителем. Можно выделить две основные задачи обучения с учителем — задачу классификации и регрессии. В первой задаче целевой признак — категориальный, т.е. отражает принадлежность к определенной группе по какому-то критерию (принадлежность к классу). Например, мы хотим научить модель определить какое-то заболевание на раннем этапе, чтобы отправить на расширенное обследование тех пациентов, которым это действительно нужно. Так они смогут быстрее получить медицинскую помощь за счёт уменьшения очереди. Соответственно, для обучения нам нужны данные некоторых уже полностью исследованных пациентов с результатами первичного обследования для них и целевым признаком — наличием или отсутствием диагностируемого заболевания. Другая задача — задача регрессии. В таком случае целевой признак — количественный, некоторое число. Примером такой задачи может быть оценка рыночной стоимости автомобиля, в таком случае стоимость и будет целевым признаком.
Рассмотрим задачу классификации. Здесь ошибка может измеряться только качественно — угадали или не угадали правильный класс для объекта. Соответственно, отталкиваться здесь нужно уже от числа ошибок и правильных ответов. Самая интуитивная метрика здесь Accuracy (аккуратность) — доля правильных ответов модели. Делим число правильных ответов на число всех объектов, для которых строились предсказания (объём тестовой выборки) — получаем её значение. Иногда она хорошо подходит в реальных задачах, но тут есть подводные камни: если один из классов будет много меньше другого, то Accuracy будет высокой даже для модели с плохой предсказательной способностью. Вернёмся к примеру с диагностикой заболеваний. Если в тестовой выборке у нас больных диагностируемым заболеванием в разы меньше, чем остальных пациентов, скажем в 9 раз, то, используя для предсказания формальный алгоритм — будем для всех пациентов предсказывать, что они здоровы, — мы получим высокую Accuracy, 0,9 (0,9 N / (0,9 N + 0,1 N), где N — размер выборки), в то время как решать поставленную задачу такой алгоритм не будет. Поэтому используются и другие метрики. Precision (точность), доля объектов, отнесённых к конкретному классу и при этом действительно принадлежащими ему, и Recall (полнота), доля объектов класса из всех объектов этого класса, которую верно нашел алгоритм. Так в нашем примере с диагностикой заболевания, нам важнее Recall для больных, важно, чтобы на дополнительное обследование попали все больные, которым это необходимо, в то время как не так страшно отправить на дополнительное обследование здорового пациента. А, если бы мы, например, предсказывали поломку дорогостоящего оборудования на производстве, то бизнесу было бы накладно покупать новое оборудование, которое будет простаивать при исправном старом. Есть и другие метрики, которые мы можем использовать, более того, мы можем конструировать свои метрики под конкретные задачи бизнеса.
В задаче регрессии каждую ошибку мы можем легко оценить количественно, например, рассматривая абсолютную разницу между предсказанием и правильным ответом для объекта (если учитывать знак, то в таком случае отклонения в разную сторону от номинала могут обманчиво нивелировать друг друга). Взяв среднее значение этого показателя на тестовой выборки для модели, мы получим значение метрики MAE (средней абсолютной ошибки). Чтобы уйти от знака можно брать квадрат ошибки вместо модуля, тогда мы сильнее будем штрафовать модель за большую по величине ошибку, получая метрику MSE (среднеквадратичную ошибку). Иногда нам нужно оценивать ошибку относительно величины целевого признака для объекта, тогда можно использовать MAPE — mean absolute percentage error, средняя абсолютная относительная ошибка в процентах. Есть и другие метрики, и, опять же, можно конструировать свои метрики для конкретных задач бизнеса, исходя из их специфики.
Как правило можно сравнивать значения метрики разных реальных моделей между собой, для проверки адекватности использовать какие-то фиктивные модели (как в примере с больными) и идеальные модели.
Полезные материалы: