СТАТЬЯ

Алгоритм случайного вырезания леса

Из книги Дуга Хаджена и Ричарда Никола Машинное обучение для бизнеса

___________________________________________________________________

Сэкономьте 37 % на Машинное обучение для бизнеса. Просто введите код fcchudgeon в поле для кода скидки при оформлении заказа на manning.com.
________________________________________________________________________________

В этой статье вы увидите, как можно использовать SageMaker и алгоритм Random Cut Forest для создания модели, которая будет выделять строки счета-фактуры, которые Бретт должен запросить в юридической фирме. Результатом станет повторяемый процесс, который Бретт сможет применять к каждому счету, что заставит юристов, работающих в его банке, работать в напряжении и сэкономит банку сотни тысяч долларов в год. Поехали!

Бретт работает юристом в крупном банке. Он отвечает за проверку того, чтобы юридические фирмы, нанятые банком, правильно выставляли счета банку. Насколько это сложно, спросите вы? Довольно жесткий ответ. В прошлом году банк Бретта использовал сотни различных фирм по тысячам различных юридических вопросов, и каждый счет, представленный фирмой, содержит десятки или сотни строк. Отслеживание этого с помощью электронных таблиц — кошмар.

Что такое AWS Sagemaker?

Sagemaker — это среда Amazon для создания и развертывания моделей машинного обучения. Давайте посмотрим на функциональность, которую он предоставляет. Sagemaker революционен, потому что он:

  • Служит вашей средой разработки в облаке, поэтому вам не нужно настраивать среду разработки на своем компьютере.
  • Используйте предварительно настроенную модель машинного обучения для своих данных.
  • Используйте встроенные инструменты для проверки результатов модели машинного обучения.
  • Разместите свою модель машинного обучения.
  • Автоматически настройте конечную точку, которая принимает новые данные и возвращает прогнозы.

На приведенной ниже диаграмме показано, как элементы Sagemaker соединяются друг с другом.

  1. Загрузите набор данных заказов в AWS (система AWS, которую мы будем использовать для хранения данных, называется S3),
  2. Создайте блокнот Jupyter в Sagemaker,
  3. Обучите модель машинного обучения на наборе данных,
  4. Разместите модель машинного обучения,
  5. Создайте конечную точку, которую вы можете использовать для получения прогнозов от модели, и
  6. Запустите блокнот и сгенерируйте прогнозы относительно того, требуется ли утверждающий для 50 заказов.

Для целей этой статьи давайте представим, что Бретт настроил блокнот Jupyter в Sagemaker для обучения и размещения модели машинного обучения на наборе данных, представленном в двух примерах, которые будут обсуждаться.

Что такое алгоритм случайного вырезания леса?

Алгоритм машинного обучения, который вы будете использовать в этой статье, называется Random Cut Forest. Это прекрасное описательное имя, потому что алгоритм берет набор случайных точек данных (Random), обрезает их до одинакового количества точек и создает деревья (Cut). Затем он просматривает все деревья вместе (лес), чтобы определить, является ли конкретная точка данных аномалией: Случайно вырезанный лес.

Дерево — это упорядоченный способ хранения числовых данных. Самый простой тип дерева называется бинарным деревом. Это отличный способ хранения данных, потому что его легко и быстро использовать на компьютере. Чтобы создать дерево, вы случайным образом подразделяете точки данных, пока не изолируете точку, которую тестируете, чтобы определить, является ли она аномалией. Каждый раз, когда вы подразделяете точки данных, создается новый уровень дерева.

Чем меньше раз вам нужно разделить точки данных, прежде чем вы изолируете целевую точку данных, тем больше вероятность того, что точка данных является аномалией для этой выборки данных.

В следующих двух разделах вы рассмотрите два примера деревьев с введенной целевой точкой данных. В первом примере целевая точка данных выглядит аномалией. Во втором примере целевая точка данных не является аномалией. Когда вы посмотрите на образцы вместе как на лес, вы увидите, что эта точка вряд ли будет аномалией.

Пример 1

На рис. 2 показаны шесть серых точек, которые представляют собой шесть точек данных, выбранных случайным образом из набора данных. Эти точки данных берутся из любого столбца в наборе данных. Белая точка представляет целевую точку данных, которую вы тестируете, чтобы определить, является ли она аномалией. Визуально вы можете видеть, что эта белая точка находится несколько в стороне от других значений в этом образце данных; может это аномалия. Но как определить это алгоритмически? Здесь на помощь приходит представление дерева.

На рис. 3 показан верхний уровень дерева. Верхний уровень — это отдельный узел, который представляет все точки данных в выборке (включая целевую точку данных, которую вы тестируете). Если узел содержит какие-либо точки данных, отличные от целевой точки, которую вы тестируете, цвет узла отображается серым. Узел верхнего уровня всегда серый, потому что он представляет все точки данных в выборке.

На рис. 4 показаны точки данных после первого подразделения. Разделенная линия вставляется случайным образом через точки данных. Каждая сторона подразделения представляет узел в дереве.

На рис. 5 показан следующий уровень дерева. Левая часть рисунка 4 становится узлом B слева от дерева. Правая сторона рисунка 3 становится узлом C справа от дерева.

Оба узла в дереве показаны серыми, потому что обе стороны разделенной диаграммы на рисунке 4 содержат по крайней мере одну серую точку.

Следующим шагом является дальнейшее разделение части диаграммы, содержащей целевую точку данных. Это показано на рисунке 6. Вы можете видеть, что узел C справа остается нетронутым, тогда как левая сторона подразделяется на узлы D и E.

Узел E содержит только целевую точку данных; дальнейшее подразделение не требуется.

На рис. 7 показано итоговое дерево. Узел E показан белым цветом, поскольку он содержит целевую точку данных. Дерево имеет три уровня. Чем меньше дерево, тем больше вероятность того, что точка является аномалией. Трехуровневое дерево — это довольно маленькое дерево, указывающее на то, что целевая точка данных может быть аномалией.

Теперь взгляните на другую выборку из шести точек данных, которые более тесно сгруппированы вокруг целевой точки данных.

Пример 2

Во второй выборке данных случайно выбранные точки данных более плотно сгруппированы вокруг целевой точки данных. Важно отметить, что наша целевая точка данных — это та же точка данных, которая использовалась в образце 1. Единственное отличие состоит в том, что из набора данных была взята другая выборка точек данных. На рисунке 8 видно, что точки данных в образце (серые точки) более плотно сгруппированы вокруг целевой точки данных, чем в образце 1.

Обратите внимание, что на рисунке 8 и следующих рисунках в этом разделе дерево отображается под диаграммой точек данных.

Как и в примере 1, на рисунке 9 диаграмма разделена на две части, которые мы обозначили как B и C. Поскольку обе части содержат серые точки, уровень 2 древовидной диаграммы показан серым цветом.

Затем раздел, содержащий целевую точку данных, снова разделяется. На рис. 10 показано, что секция B разделена на две секции, обозначенные D и E, и к древовидной диаграмме добавлен новый уровень. Оба этих раздела содержат одну или несколько серых точек, а уровень 3 древовидной диаграммы показан серым цветом.

Целевая точка данных находится в разделе E, и этот раздел разделен на два раздела, обозначенных буквами F и G, как показано на рисунке 11.

Целевая точка данных находится в разделе F, и этот раздел разделен на две части, обозначенные H и J, как показано на рисунке 12. Раздел J содержит только целевую точку данных, и она показана белым цветом. Дальнейшее разделение не требуется. Результирующая диаграмма имеет пять уровней, что указывает на то, что целевая точка данных вряд ли будет аномалией.

Последним шагом, выполняемым алгоритмом Random Cut Forest, является объединение деревьев в лес. Если во многих образцах есть небольшие деревья, то целевая точка данных, вероятно, будет аномалией. Если только в нескольких образцах есть маленькие деревья, то вряд ли это аномалия.

Это все для этой статьи. Если вы хотите узнать больше о книге, загляните на liveBook здесь и посмотрите эту презентацию.

Об авторах:
Даг Хаджен
руководит консалтинговой компанией по автоматизации бизнеса и с пользой использует свой значительный опыт, помогая компаниям создавать команды по автоматизации и машинному обучению. В 2000 году Дуг запустил одну из первых в Австралии компаний по автоматизации электронного выставления счетов. Ричард Никол имеет более чем 20-летний опыт работы специалистом по данным и инженером-программистом. В настоящее время он специализируется на максимизации ценности данных с помощью методов искусственного интеллекта и машинного обучения.

Первоначально опубликовано на freecontent.manning.com.