Однако важно помнить, что по определению симулированные данные поступают из гипотетической модели. Они являются темными данными (DD-тип 14: фальшивые и синтетические данные), которые возникают не в результате реального процесса. Очевидно, что если модель неверна, если она плохо отображает реальность, то мы рискуем получить искаженное представление о том, что могло бы произойти. Здесь работает то же правило, что и везде: если у вас нет глубокого понимания вопроса, вы легко можете сбиться с пути.
Репликация данных
Из этой книги вы уже знаете, как часто мы хотим оценить то, чего не было, или то, что не можем наблюдать непосредственно. Например, мы пытаемся диагностировать заболевание, основываясь исключительно на симптомах; или прогнозировать число пассажиров нью-йоркского метро в следующем году, исходя из того, сколько человек совершило поездку в этом; или понять, на что будет походить национальная экономика через десятилетие; или предсказать, какой потенциальный заемщик допустит дефолт по кредиту, какой студент преуспеет на курсе, какой соискатель будет более эффективно выполнять работу.
Общей особенностью этих ситуаций является то, что в нашем распоряжении есть данные, описывающие ряд предыдущих случаев (людей, у которых были заболевания, пассажиропоток прошлых лет или поведение реальных заемщиков). И для каждого из этих случаев мы знаем исход (какое именно заболевание, сколько пассажиров, количество дефолтов), а также описательные характеристики (симптомы, повторяющиеся маршруты, информация из формы заявки). Мы можем использовать эти исторические данные для моделирования взаимосвязи между описательными характеристиками и исходом. Такая модель позволит прогнозировать исходы для других случаев исключительно на основе их описательных характеристик.
Эта базовая структура – совокупность прошлых наблюдений, дающая нам и характеристики, и исходы, которую мы используем для построения модели, связывающей характеристики с результатом, чтобы в дальнейшем предсказывать новые исходы – распространена повсеместно. Подобные модели часто называют прогностическими, хотя «прогноз», возвращаясь к нашим примерам, может быть связан с неизвестным диагнозом, а вовсе не обязательно с будущим пассажиропотоком. Будучи исключительно популярными, прогностические модели стали предметом огромного числа исследований. На сегодня разработано множество методов построения таких моделей с широким спектром специфических свойств, и можно выбрать наилучший, соответствующий конкретной задаче.
Но какое отношение все это имеет к темным данным? Мы проиллюстрируем это на очень простом примере и базовом прогностическом методе. Задача: спрогнозировать доход, исходя только из одной переменной – возраста. Чтобы построить возможную модель, мы соберем данные о парах значений «возраст/доход» на основе выборки. Самым простым методом будет прогнозирование дохода нового человека, возраст которого нам известен, используя значение дохода других людей того же возраста. Так, если мы хотим предсказать доход кого-то в возрасте 26 лет и в нашей выборке есть один человек такого возраста, то в простейшем случае мы используем его доход в качестве нашего прогноза. Если же в нашей выборке есть и другие 26-летние, мы используем данные каждого из них, чтобы рассчитать средний доход. В более общем смысле средние значения обеспечат лучший прогноз, поскольку они менее подвержены случайным колебаниям. Это означает, что было бы разумно включить также доходы 25-летних и 27-летних, поскольку они, вероятно, будут близки к доходам 26-летних, а их включение увеличит размер выборки. Аналогичным образом мы могли бы включить тех, кому 24 года и 28 лет и т. д., но при этом придавать меньший вес их значениям по мере удаления от 26. Эта стратегия позволила бы нам сделать прогноз, даже если в выборке нет ни одного человека в возрасте 26 лет.
Чтобы понять, как это связано с темными данными, давайте посмотрим на то же исследование под другим углом. Стараясь спрогнозировать доход человека в возрасте 26 лет, по сути, мы создаем новый набор данных путем случайной репликации значений в существующей выборке. Мы делаем много копий 26-летних, чуть меньше копий тех, кому 25 и 27 лет, еще меньше – тех, кому 24 и 28, и т. д. Как будто у нас изначально была гораздо более широкая выборка, основную часть которой мы по какой-то причине просто не видели. Усреднение доходов по всем реплицированным даст соответствующую оценку доходов людей в возрасте 26 лет.
Этот пример нагляден, но в реальной жизни обычно все несколько сложнее. Как правило, вместо одной описательной характеристики, такой как возраст в нашем примере, мы будем иметь дело с несколькими или даже с множеством характеристик. Например, мы можем охарактеризовать пациентов по их возрасту, росту, весу, полу, систолическому и диастолическому артериальному давлению, пульсу в состоянии покоя, а также по ряду симптомов и результатов медицинских тестов, чтобы оценить вероятность выздоровления нового пациента с определенным набором значений. Как и в предыдущем примере мы создадим новый набор данных, реплицирующий людей таким образом, что у нас будет больше копий тех, кто имеет характеристики, очень схожие с характеристиками интересующего нас человека, и чем меньше будет это сходство, тем меньше будет и число копий. Люди, которые полностью отличаются по всем характеристикам от нашего пациента, могут не воспроизводиться вовсе. После того, как собраны все реплицированные данные, мы просто вычисляем долю тех, кто выздоровел, и принимаем это значение за предполагаемую вероятность выздоровления.
Эта базовая идея стратегической репликации данных в случаях, когда требуется получить намного больший и, соответственно, более релевантный набор данных, используется и иным образом. В целях упрощения мы рассмотрим алгоритмы машинного обучения для распределения объектов по классам, как в предыдущем диагностическом примере или как в случае вопроса о том, может ли подавший заявку на ипотеку допустить дефолт по платежам (то есть принадлежать одному из двух классов: «да» или «нет»). Но теперь мы рассмотрим идеи, которые используются для повышения эффективности таких алгоритмов.
Как правило, алгоритмы для создания подобных диагностических классификаций могут ошибаться: симптомы часто бывают неоднозначными, а у молодого кандидата на ипотеку может быть очень короткая история финансовых транзакций. Один из способов улучшить такой алгоритм состоит в том, чтобы изучить случаи, которые он ранее неверно классифицировал, и посмотреть, сможем ли мы каким-то образом изменить или скорректировать его, чтобы прогнозы стали точнее. Метод, который позволяет сделать это, – создание искусственных данных по следующей схеме. Мы начинаем с определения пациентов или кандидатов, по которым был сделан неправильный прогноз, и добавляем к данным дополнительные копии этих случаев, возможно, огромное число дополнительных копий. Теперь, когда мы настроим параметры нашей модели для классификации этого расширенного набора данных, она будет вынуждена уделять больше внимания случаям, в которых ранее ошибалась. Чтобы лучше понять это, представьте себе экстремальную ситуацию, в которой ранее неверно классифицированный случай был реплицирован 99 раз и теперь существует 100 абсолютно идентичных его копий. Ранее наша классификация выдавала только один ошибочный случай, что было незначительным, но теперь этих случаев стало в 100 раз больше. Эффективность метода классификации значительно улучшится, если у нас получится настроить его так, чтобы он мог теперь правильно оценивать этот случай (и его 99 копий).