к приему этого человека на работу, но нам нужно задать больше наводящих вопросов, касающихся таких-то областей», и так далее. Результат – единая рекомендация, основанная на совокупности рекомендаций всей группы, а не множество отдельных рекомендаций, объединенных в одну.
Рис. 10.4. Случайный лес – это «лес», состоящий из нескольких деревьев решений (как правило, сотен), в котором каждое дерево построено на основе случайного подмножества данных. Итоговый прогноз представляет собой консенсус всех составляющих лес деревьев
Как правило, деревья решений с градиентным усилением начинаются с построения так называемого неглубокого дерева с несколькими ветвями и узлами. Эта первая итерация по своей сути весьма наивна и не позволяет правильно разделить набор данных. На следующем этапе с учетом ошибок, допущенных первым деревом, строится новое дерево с усиленными наблюдениями, для которых были характерны особенно большие ошибки (в этом проявляется действие градиента). Для создания усиленной модели этот процесс выполняется тысячи раз с использованием больших наборов данных.
Как правило, эти ансамблевые методы не предназначены для анализа «небольших данных», поэтому специалистам следует применять их при работе с сотнями, а не десятками наблюдений.
Интерпретируемость ансамблевых моделей
Только представьте, как сложно было бы разобраться в тысячах листьев и узлов деревьев, правила которых чувствительны к мельчайшим изменениям в данных. Эти модели часто называют «черными ящиками», поскольку их внутреннее устройство очень трудно понять. При использовании случайных лесов и деревьев решений с градиентным усилением вместо логистической регрессии, выигрывая в точности, вы теряете в интерпретируемости. Это компромисс[102].
Другие модели типа «черный ящик» мы обсудим в главе 12.
Остерегайтесь ловушек
Какой бы мощью ни обладали модели классификации, при их неправильном применении можно угодить в несколько ловушек. Не заблуждайтесь: модели, которые имеют недостатки, описанные в следующих разделах, не могут быть «достаточно хорошими». Как главный по данным, вы должны хорошо понимать следующие потенциальные ловушки:
– неправильное определение типа задачи;
– утечка данных;
– отсутствие разделения данных;
– выбор неправильного порогового значения для принятия решения;
– неправильное понимание точности.
Последнее мы обсудим в следующем разделе.
Неправильное определение типа задачи
Совершенно очевидно, что если вы хотите предсказать категориальную переменную, вам не следует использовать линейную регрессию. Например, вспомните, что в табл. 10.1 мы заменили «да» и «нет» значениями 1 и 0 при постановке задачи, решаемой с помощью логистической регрессии.
Ваша статистическая программа не поправит вас, если вы неправильно примените линейную регрессию к этим данным. Она не знает, что ваши 1 и 0 означают «Да» и «Нет». Мы видели, как подобное происходит множество раз. Главным по данным следует иметь это в виду и незамедлительно исправлять ошибку.
Утечка данных
Что, если для построения классификационной модели вы собрали все возможные исторические данные о заявках соискателей на прохождение стажировки, в том числе о том, были ли они в конечном итоге наняты на работу или нет (0 означает «Нет», а 1 – «Да»). А затем вы применили логистическую регрессию, чтобы предсказать, получит ли предложение тот или иной кандидат.
Как вы думаете, что не так с использованием атрибута «нанят»?
Слово «нанят» означает, что соискатель согласился устроиться на постоянную работу после стажировки (вот и утечка). Только соискатели, получившие предложение пройти стажировку (что вы и пытаетесь предсказать), будут иметь входной параметр «Нанят?» = 1. Если значение атрибута «Нанят?» = 1, то значение целевого параметра «Пригласить?» также всегда должно быть равно 1. Данная модель абсолютно бесполезна, потому что обучена на данных, которые не могут быть доступны во время прогнозирования.
Критическое осмысление имеющихся данных и входных признаков в алгоритме контролируемого обучения – это то, что программа не может сделать за специалистов по работе с данными.
Отсутствие разделения данных
Если вы не разделите свои данные на набор для обучения и набор для тестирования, вы рискуете переобучить свою модель и получить ужасную производительность при анализе новых данных. Как правило, рекомендуется использовать 80 % наблюдений в наборе данных для обучения модели, а остальные 20 % – для тестирования ее производительности.
Янн ЛеКун, главный научный сотрудник Meta[103] по вопросам искусственного интеллекта, сформулировал это так: «Тестирование модели на обучающем наборе предается анафеме в мире машинного обучения, поскольку это величайший грех, который только можно совершить»[104]. Поэтому убедитесь в том, что вы тестируете свои модели на данных, с которыми они раньше не сталкивались. Если ваш алгоритм машинного обучения демонстрирует практически идеальные прогнозы, что возможно в случае деревьев решений с градиентным усилением – значит, ваша модель, скорее всего, переобучена.
Выбор неправильного порогового значения для принятия решения
Большинство моделей классификации выдают не метку, а вероятность принадлежности к положительному классу. Как вы помните, для студента со средним баллом 2,0 шанс получить приглашение на стажировку составлял 4 %, а для студента со средним баллом 3,0 – 41 %. Однако на основе этой информации нельзя ничего сделать до тех пор, пока не будет сформулировано решающее правило.
Именно здесь в игру вступаете вы. Выбор порогового значения вероятности для выполнения окончательной классификации – это решение, которое должен принять человек, а не машина. Многие программные пакеты в качестве такого значения по умолчанию выбирают 0,5 или 50 %. Однако это значение не обязательно соответствует особенностям стоящей перед вами проблемы.
Не стоит относиться к его выбору легкомысленно. Для модели, которая определяет, кому стоит отправить по почте предложение кредитной карты, можно задать низкое пороговое значение (судя по нашим почтовым ящикам, так и происходит), тогда как модель, оценивающая претендентов на прохождение дорогостоящего лечения, может иметь высокое значение. Вам необходимо учитывать эти компромиссы, которые сильно зависят от специфики вашей бизнес-задачи.
Теперь давайте поговорим о точности в контексте классификации и о том, что мы вообще подразумеваем под этим словом.
Неправильное понимание точности
Поскольку вы и остальные сотрудники вашей компании занимаетесь построением, развертыванием и поддержанием работы моделей классификации, предназначенных для автоматизации процесса принятия решений, вы должны уметь оценивать эти модели.
Ваша первая задача – сделать паузу и провести инвентаризацию исторических данных. Когда вы приступите к развертыванию своей модели, вам понадобится задать критерий для ее оценки, то есть создать «средство контроля». И это необходимо сделать для любой модели классификации, которую создаете вы или ваши специалисты по работе с данными. В случае бинарной классификации для этого достаточно определить долю класса большинства в наборе данных. В наборе