данных о стажерах этим классом был «Нет», так как 60 % кандидатов не получили предложения пройти стажировку (а 40 % получили).
Теперь предположим, что кто-то из вашей команды применяет XGBoost (алгоритм градиентного усиления деревьев решений) к 80 % данных (обучающий набор), и модель классификации предсказывает верные результаты в 60 % случаев на оставшихся 20 % данных (тестовый набор). Поскольку это больше, чем 50/50, такой результат может показаться вам вполне хорошим, так как в долгосрочной перспективе эта модель обещает работать лучше, чем подбрасывание монеты.
Однако на самом деле это указывает на то, что признаки в вашем наборе данных никак не связаны с выходными параметрами. Как в этом можно убедиться? Ну, если бы вы обратились к своему исходному набору данных, полностью проигнорировали входные параметры и попытались просто угадать класс большинства для каждого прогноза («Нет»), то вы оказались бы правы в 60 % случаев! Так что алгоритм XGBoost ничем вам не помог. Метрика точности 60 % в каком-то неточна, поскольку не превышает контрольный показатель.
Подумайте о событиях, которые случаются нечасто. Например, рекламное объявление в Интернете может быть показано тысячам пользователей, но лишь несколько человек кликнут по нему. Мы бы назвали эти данные несбалансированными, поскольку слишком большую долю обучающего набора составляют объекты одного класса (большинство пользователей «не щелкнули» по объявлению). Если, например, 99,5 % людей не щелкают по объявлению, то прогноз по умолчанию, говорящий о том, что никто никогда по нему не щелкнет, окажется верным в 99,5 % случаев.
По этой причине вам не следует оценивать производительность алгоритма машинного обучения исключительно по критерию точности. Гораздо более эффективный способ оценки модели классификации – использование матрицы ошибок.
Матрицы ошибок
Матрица ошибок – это способ визуализации результатов модели классификации и определенного порога принятия решений. Представьте, что модель, построенная на основе алгоритма случайного леса, была обучена на 80 % данных о стажерах (240 кандидатов) и протестирована на оставшихся 20 % данных (60 кандидатов) с целью имитации процесса ее использования в реальном мире. Матрица ошибок, приведенная в табл. 10.3, демонстрирует результаты, полученные при использовании порога отсечения по умолчанию, равного 0,5. Обратите внимание на то, что сумма всех значений составляет 60, что соответствует количеству наблюдений в тестовом наборе. В этой выборке 23 кандидата получили приглашение на стажировку, а 37 – нет. Насколько хорошо алгоритм справился с классификацией этих данных?
Матрица ошибок предоставляет несколько критериев для оценки производительности модели. Обычная точность – это всего лишь один из них.
Точность = Процент верных прогнозов = (36 + 19)/60 = 91,6%
Однако точность – это не то, на чем вам стоит сосредоточивать внимание, особенно учитывая ее уязвимость к проблеме несбалансированных данных. В большинстве случаев вас, скорее всего, будет волновать то, насколько хорошо ваш алгоритм предсказывает истинно положительные и истинно отрицательные значения. Другими словами, находит ли классификатор те случаи, которые должен находить (истинные положительные), и игнорирует ли те наблюдения, которые должен игнорировать (истинно отрицательные)?
Табл. 10.3. Матрица ошибок для прогнозов модели классификации с порогом отсечения 0,5
Доля истинно положительных результатов (она же «Чувствительность» или «Отзывчивость») = Количество соискателей, приглашенных на стажировку, деленное на количество соискателей, которые должны были получить такое приглашение = 19/(19 + 4) = 83 %. Вам нужно, чтобы это значение было максимально близко к 100 %.
Доля истинно отрицательных результатов («Специфичность») = Количество соискателей, которым было отказано в приглашении на собеседование, деленное на количество соискателей, которым должно было быть в нем отказано = 36/(36 + 1) = 97 %. Это значение также должно быть максимально близко к 100 %.
Напомним, что для создания матрицы ошибок по умолчанию, как правило, используется порог отсечения 0,5. Если бы мы увеличили это значение до 0,75, то для получения приглашения соискатель должен был бы соответствовать более строгим критериям. Новая матрица показана в табл. 10.4.
Обратите внимание, как изменились показатели.
Доля истинно положительных результатов = Количество соискателей, приглашенных на стажировку, деленное на количество соискателей, которые должны были получить такое приглашение = 12/(12 + 11) = 52 %.
Доля истинно отрицательных результатов = Количество соискателей, которым было отказано в приглашении на собеседование, деленное на количество соискателей, которым должно было быть в нем отказано = 37/37 = 100 %.
Увеличение порогового значения привело к уменьшению доли истинно положительных результатов, что, в свою очередь, увеличило долю истинно отрицательных результатов. Более высокий порог позволяет отсеять неподходящих кандидатов, но за это приходится заплатить отсевом нескольких подходящих кандидатов.
Мы хотели продемонстрировать компромисс, на который приходится идти при определении порога отсечения. В конечном счете выбор подходящего порогового значения требует экспертных знаний в предметной области. Как главный по данным вы должны потратить время на обдумывание порога отсечения, лучше всего подходящего для решения стоящей перед вами задачи.
Табл. 10.4. Матрица ошибок для прогнозов модели классификации с порогом отсечения 0,75
Путаница в терминах, связанных с матрицей ошибок
Доля истинно положительных и истинно отрицательных результатов – это далеко не все показатели, которые можно получить на основе матрицы ошибок.
Статистики и врачи называют долю истинно положительных результатов «чувствительностью», а специалисты по работе с данными и машинному обучению – «отзывчивостью». В разных областях для одних и тех же показателей используются разные термины.
Подведение итогов
В этой главе мы обсудили логистическую регрессию, деревья решений и ансамблевые методы. Кроме того, мы поговорили о множестве подводных камней, с которыми вы можете столкнуться при работе с моделями классификации. В частности, мы обсудили такие распространенные ловушки классификации, как:
– неправильное определение типа задачи;
– утечка данных;
– отсутствие разделения данных;
– выбор неправильного порогового значения для принятия решения;
– неправильное понимание точности.
Для лучшего понимания точности мы описали матрицу ошибок и то, как ее можно использовать для оценки производительности модели. В следующей главе мы поговорим о неструктурированных данных и текстовой аналитике.
Глава 11
Освойте текстовую аналитику
«Стремитесь к успеху, но готовьтесь к овощам»
– InspireBot™, бот на основе искусственного интеллекта, «предназначенный для создания неограниченного количества уникальных вдохновляющих цитат»[105]
В нескольких предыдущих главах мы говорили о данных в их традиционном понимании. Для большинства людей наборы данных представляют собой таблицы, состоящие из строк и столбцов. Это структурированные данные. Однако в реальном мире большая часть данных, с которыми вы