Добрый день! Сегодня мы поговорим о тестировании моделей. Разговор начнем о том, как разбивается множество. И первый метод — это контрольная выборка. Множество делится на неравные классы — например, на пять частей, и на четырех частях происходит обучение модели, а одна часть остается потом для контроля, то есть для тестирования. И иногда этот способ работает не так хорошо, поэтому используют его более продвинутую версию, которая называется кросс-валидацией (cross-validation). Мы видим, точно так же разбитое множество на пять частей, но делаем уже не один эксперимент, а несколько экспериментов по проверке. И каждый раз используем новую часть для валидации, то есть контрольную, а остальные используем для обучения модели. И это дает более высокие и точные показатели. Теперь, когда мы знаем основные методы того, как разбивается множество для того, чтобы потом его тестировать, поговорим непосредственно о тех метриках, которые используются. Посмотрим на наше множество, которое разбивается на две части — класс ноль и класс один. На картинке мы видим, что такой способ разбиения простой какой-то линейной функции — он все равно приводит к тому, что часть объектов класса один попадает в класс ноль, а часть объектов класса 0 попадает в класс 1. И это означает, что мы не совсем точно определили. Так как же мы можем понять точность определения? И первое, что к нам приходит, — это мера правильных ответов выборки. То есть мы можем померить, какое количество правильных ответов мы получили в выборке. И это вот есть такая самая простая метрика. Посмотрим, как более детально строится матрица, например, на основе этой метрики — матрица False Positive / False Negative, то есть оценки статистических гипотез. Если мы угадали и считаем, что наш ответ правильный, — это называется Positive. То есть мы видим на картинке, что те объекты, которые мы считаем, что они попали в наше множество, — они называется Positive. Но если мы совершили ошибку, то при валидации мы увидим, что часть этих объектов действительно являются теми объектами правильного множества — и это значит, мы правильно угадали True Positive. Но если мы ошиблись и сказали, что эти объекты относятся к нашему множеству, но это не так, то это уже True Negative. Теперь давайте посмотрим на остальные объекты. Про них мы говорим, что они не относятся к нашему множеству, и, соответственно, они делятся на False Negative и на False Positive. Если эти объекты на самом деле относятся к нашему множеству, но мы говорим, что это не так, то это False Negative, и оставшаяся часть — это False Positive. Часто путаются с этими понятиями, они еще называются ошибками первого и второго рода. И для этого я приведу вам простой пример, чтобы вы постарались на нем запомнить, как они называются. Допустим, у нас есть мужчина и беременная женщина, и мы проводим тест на беременность. И этот тест показал для мужчины, что он беременный. И тогда мы говорим, что это False Positive, то есть мы сказали, что да, мужчины относятся к классу беременных, но это False, мы ошиблись. Это ошибка первого рода. И, соответственно, если женщине сказали, что она не беременна, хотя она беременна, то это ошибка второго рода, то есть мы сказали: "Женщина не относится к классу беременных". Но это неправда — она к нему относится. Таким образом, False Positive и False Negative мы можем отличать. Теперь вернемся к нашей метрике, которую мы до этого использовали, а именно долю, соответственно, правильных ответов в нашей выборке. И, казалось бы, довольно понятная метрика, но, если мы возьмем несбалансированное множество, а именно множество, в котором, например, 950 объектов класса ноль, а 50 объектов класса один, и применим такую модель, когда все относится только к нулевому классу, то окажется, что наша метрика, доля правильных ответов — 95 процентов. То есть это абсолютно неправильная модель, которая точно дает неправильный результат. Мы это знаем изначально, но мы видим, что наша метрика в данном случае не работает. Именно поэтому используют другие метрики. Они называются точность и полнота. Эти метрики — они, соответственно, работают с ошибками первого и второго рода. Причем нужно сказать, что ошибки первого и второго рода — они взаимно-симметричны. То есть чем меньше вы делаете ошибок первого рода, тем, скорее всего, у вас будет больше ошибок второго рода — и наоборот. Поэтому, повышая точность, вы жертвуете полнотой — и наоборот. Давайте посмотрим на примере, какие задачи могут, в каких задачах нужно повышать точность. Например, мы хотим, чтобы какая-то военная техника попадала по врагу. И если она будет совершать ошибки и будет попадать по своим объектам, то это для нас недопустимо, потому что будет слишком высокая цена. И это просто недопустимо для такого рода задач. Соответственно, мы тогда повышаем точность, и, конечно, какие-то объекты, каких-то врагов мы пропустим. Но мы будем точно попадать всегда в наших врагов, а все остальные — те, которые мы пропустили, — они будут решаться каким-то другим способом. Либо мы будем считать, знать об этой проблеме. Если есть другая задача — например, мы смотрим за транзакциями, и если мы видим, что транзакции по картам банковским являются подозрительными, то мы тогда заблокируем карту. И, соответственно, тогда мы хотим не пропускать по максимуму таких вот фродовых мошеннических транзакций. Но в этом выборку попадут какие-то транзакции, которые действительно не являются фродовыми, — это обычные транзакции. И мы их потом разблокируем с помощью людей. То есть таким образом мы повышаем полноту. На этих двух примерах видно, что приоритет в сторону точности и полноты — он выбирается в зависимости от задачи и бизнес-контекста, в котором вы ее решаете. Также нужно рассказать и о другой мере, которая объединяет в себе точность и полноту, потому что хотелось бы, конечно, использовать какую-то одну метрику. Это называется гармоническое среднее или F-мера. Она тоже является одной из базовых и самых известных. Она, соответственно, показывает нам и тот и другой показатель. И знания вот этих основных мер — его достаточно для того, чтобы вы начали понимать, как, собственно, измеряется точность работы алгоритма. Еще раз. Это доля правильных ответов, это точность, полнота и F-мера. Спасибо! Увидимся.