Работа с данными в любой сфере - страница 52
Мы создали точечную диаграмму (рис. 6.1) с большим количеством точек данных на основе возраста (X1) и времени, проведенного за игрой в часах (X2).
Серые точки обозначают пользователей, которые не стали подписчиками; черные – подписавшихся. Если бы мы запустили классификационный алгоритм дерева решений, точечная диаграмма была бы разбита на листья, как определено алгоритмом.
Как мы видим на рис. 6.2, разбиение 1 разделило данные на Х2 = 60, а разбиение 2 – на X1 = 20 и т. д. Алгоритм сгруппировал наши точки данных в листья, что добавляет ценность классификации, и он остановится на оптимальном количестве листьев. Это оптимальное число достигается, когда дальнейшее разбиение данных делает результат листьев статистически незначимым.
На рис. 6.2 мы можем проследить логику того, как создается алгоритм дерева решений:
1. Разбиение 1 делит точки данных на те, которые находятся выше и ниже 60 (часов) на оси X2.
2. Для тех точек, которые оказываются выше 60 (часов) на оси X2, разбиение 2 проводит дальнейшее деление для точек данных на те, которые попадают выше и ниже 20 (лет) на оси X1. Это означает, что разбиение 2 делит только данные, находящиеся выше 60 (часов) на оси X2.
3. Разбиение 3 обращается к точкам данных, которые проигнорировало разбиение 2, разделив те, что оказались ниже 60 (часов) на оси X2. На этот раз разбиение делит точки данных, которые оказываются выше и ниже 30 (лет) на оси X1.
4. Разбиение 4 делит точки данных, находящиеся до 60 (часов) по оси Х2 (как разделено с помощью разбиения 1), и те, кому за 30 (лет) по оси Х1 (как разделено с помощью разбиения 3). На этот раз разбиение делит точки данных, которые оказываются выше и ниже 20 (часов) на оси X2.
Мы можем перевести описанный процесс в схему на рис. 6.3[43].
Чем этот алгоритм полезен для нас? Предположим, что нашему новому клиенту 19 лет и за первый месяц он потратил 65 часов игрового времени (X1 = 19 и X2 = 65). На графике рассеяния, который был разделен нашими разбиениями на листья, мы можем видеть, чему будет соответствовать эта точка данных. Наш алгоритм уже обнаружил, что статистически значимое число людей в возрасте до 20 лет, которые играют более 60 часов, с высокой степенью вероятности станут постоянными пользователями, а это значит, что мы можем нацелить на этого клиента рекламу, которая побудит его или ее заплатить за подписку.
Случайный лес
Алгоритм случайного леса основывается на концепции деревьев решений с использованием ансамблевого метода классификации. Вместо одного дерева случайный лес использует много разных деревьев, чтобы сделать один и тот же прогноз, принимая среднее значение результатов отдельных деревьев.
Вот мой любимый пример ансамблевого метода, который должен сделать концепцию более интуитивно понятной. Вы когда-нибудь участвовали в конкурсе, в котором нужно определить количество конфет внутри стеклянной банки? Тот, чья догадка окажется ближе всего к правильному ответу, выигрывает приз[44].
В то время как некоторые из деревьев могут быть недостаточно эффективны (в зависимости от поставленной бизнес-задачи), мы можем применить силу толпы; когда деревья решений используются в совокупности, они могут давать гораздо более обоснованные прогнозы. Подумайте об этом как о процессе голосования – каждое решающее дерево проголосует (сделает прогноз), а затем алгоритм случайного леса возьмет вариант с наибольшим количеством голосов в качестве результата. Демократия среди деревьев!
Это делает оригинальный алгоритм намного более мощным. Вместо одного дерева решений для всего массива данных случайный лес создает несколько деревьев решений. Чтобы сделать такие деревья уникальными, их создают из различных подмножеств массива данных.
Давайте исследуем случайный лес чуть подробнее, на примере конкретного случая.
Кейс: BCG – поиск лучших локаций для новых отделений банка
Алгоритмы случайного леса идеально подходят для задач, требующих более комплексной оценки наших данных, чем та, что может быть получена с помощью алгоритма дерева решений. Например, если бы мы хотели оценить потенциал банка, открывающего филиал в конкретном районе, на основе набора переменных, то мы использовали бы алгоритм случайного леса.