Далее я дам краткий обзор обучения с учителем, а также моего любимого алгоритма обучения с учителем: случайные леса.

Вся цель контролируемого обучения состоит в том, чтобы построить модель, которая принимает входные данные и делает точные выходные прогнозы. Прогнозы основаны на характеристиках элементов вашего набора данных (назовем их F), и у вас также должен быть четкий выходной сигнал «O», связанный с каждым из этих элементов набора данных. Например, вам может быть интересно спрогнозировать «окончательную цену продажи» недавно выставленного на продажу дома, учитывая его размер, спальни, ванные комнаты, соседние районы и все другие домашние особенности, которые у вас есть. В этом случае ваш выход «О» — это «окончательная продажная цена» ранее проданных домов, а ваши входы (ваши F) — это все остальные характеристики, которые вы приобрели для этих домов. Используя эти исторические данные, методы обучения с учителем помогут вам предсказать O с помощью F. (Примечание: если вы делаете прогноз относительно элемента набора данных, который вы уже видели, вы не включаете O в F…)

Выходные сигналы могут быть любыми, если у вас есть связанные с ними исторические данные. Например, предположим, что в некоторых ваших данных о жилье отсутствует год_постройки для некоторых домов. В этом случае вы можете спрогнозировать year_built для домов с отсутствующими значениями year_built, используя все другие значения, которые вам известны о доме (это называется вменением данных). Итак, вы берете элементы набора данных (дома), для которых вы действительно знаете значение year_built, и используете эти данные для построения модели, которая прогнозирует отсутствующие year_builts.

Случайные леса: краткий обзор

Хотя существует огромное количество алгоритмов обучения с учителем (которые можно рассматривать как статистические оценщики), моим фаворитом за последние десять лет или около того были случайные леса. По моему опыту, они (в отличие от линейной регрессии) преуспели в улавливании нюансов в сильно нелинейных данных и относительно быстро обучались на больших объемах данных (по сравнению с машинами опорных векторов). Случайные леса разбивают задачу прогнозирования на деревья решений. Деревья решений — это древовидные блок-схемы, которые позволяют человеку (человеку или компьютеру) следовать своей логике и делать сигнальные прогнозы относительно (возможно, никогда ранее) элементов набора данных. Эти деревья решений часто оченьполезны при попытке понять, что разделяет разные уровни выпуска (например, окончательная цена продажи по крайней мере на 5 % ниже первоначальной запрашиваемой цены, окончательная цена продажи не менее чем на 7% выше первоначальной запрашиваемой цены). Возможно, вы обнаружите, что дома с 3 спальнями, по крайней мере, с 3 ванными комнатами стоят дороже запрашиваемой цены, но те, у кого есть только 1 ванная, стоят значительно меньше, чем просят. Но все, что вы найдете в разбиениях деревьев решений верхнего уровня, будет исключительно направлено на отделение возможных выходных значений друг от друга. Каждую ветвь дерева можно рассматривать как отдельную группу или кластер, и члены этих групп максимально отличаются выходными значениями от членов других групп.

Обеспечение качества данных с помощью случайных лесов

Очень приятное преимущество случайных лесов заключается в том, что они очень полезны, когда дело доходит до выявления проблем с обработкой данных. Например, вы можете попытаться определить клиентов, которые, скорее всего, закроют свою учетную запись (отток) в течение следующих 30 дней. Ваш исторический набор данных может включать историю платежей, а также множество других функций — стандартных, таких как адрес клиента, дата рождения, тип учетной записи и т. д., а также другие, такие как различные флаги из процессов, характерных для вашего бизнеса (связались для обновления сервис, адрес пропущен и т.д.). Вы мало знаете о бизнес-процессах, которые приводят к созданию этого набора данных, поэтому многие функции могут быть вам немного незнакомы. Несмотря на это, когда вы готовите свой набор данных, вы выбираете случайные учетные записи из своего набора данных, и для каждой из них вы выбираете случайный пробный месяц и упаковываете двенадцать месяцев истории учетной записи, предшествующих этому пробному месяцу, в набор входных функций для вашего исследования. модель. Вы строите свою модель случайного леса и обнаруживаете, что она с точностью 98 % прогнозирует отток аккаунтов, на которых она не обучалась. Вау! Готовы ли вы развернуть эту модель? Может быть нет. Вы полагаете, что, по крайней мере, вы проверите деревья решений, которые составляют случайный лес вашей модели, чтобы увидеть, что важно для столь точного прогнозирования оттока (ваш менеджер, вероятно, захочет знать!). Вы обнаружите, что разделение верхнего уровня почти в каждом дереве решений — это флаг skiptrace. Когда флаг равен true, дерево решений предсказывает отток, а когда он неверен или неизвестен, оно прогнозирует отсутствие оттока в течение пробного месяца. Вы сообщаете о своих выводах своему руководителю, который незамедлительно сообщает вам: Мы пропускаем некоторые учетные записи, когда у нас есть жалобы на обслуживание клиентов от клиента, и мы всегда пропускаем учетные записи, которые были закрыты, чтобы мы могли убедиться, что мы отправляем учетную запись. переписка по нужным адресам. Таким образом, этот флаг skiptrace включает данные по факту — информацию, которую вы не всегда будете иметь до месяца проверки. Если у вас нет временных меток, связанных со всеми изменениями этих флагов пропуска (чтобы вы могли знать, какие изменения произошли до месяца зондирования, а какие произошли во время или после него), вы не сможете включить эти флаги в свои входные объекты.

Если бы вы использовали другой метод обучения с учителем (например, нейронные сети), было бы чрезвычайно сложно раскрыть эту проблему подготовки данных; нейронные сети, линейная и логистическая регрессия и многие другие методы машинного обучения не имеют простых методов для интуитивного описания их внутреннего «принятия решений». Если вы развернете модель, основанную на ошибочных предположениях о данных или неправильно подготовленных исторических данных, вы можете легко получить бессмысленные прогнозы и большую неточность. Таким образом, хотя случайные леса могут быть не самым точным методом моделирования для всех задач, часто бывает полезно использовать их для быстрой проверки ваших настроек данных.

Случайные леса

Новые методы (такие как Глубокое обучение) могут лучше справляться с определенными типами задач (особенно с несколькими выходами для каждого элемента), но, когда я могу, я сначала использую случайные леса. Они дают мне краткий обзор того, что происходит с моими данными, и помогают мне эффективно решать проблемы или дополнительные области исследования данных. Поскольку их так легко обучить и использовать, я часто могу перейти к следующей большой бизнес-проблеме, не втягиваясь в проблемные параметры и/или архитектурные кроличьи норы, которые могут мешать другим методам. Я настоятельно рекомендую, чтобы они были частью набора инструментов каждого начинающего специалиста по данным.