logo search
Практические работы

4.2. Решение задачи

Покажем последовательность решения бизнес-задачи сегментации абонентов с помощью подхода, который основан на алгоритме Кохонена. Решение состоит из двух шагов:

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

В Deductor канонический алгоритм Кохонена дополнен рядом возможностей.

Импортируйте в Deductor набор данных из файла mobile.txt. Запустите Мастер обработки и выберите узел Карта Кохонена. Установите все поля, кроме Код, входными (рис. 4.1).

Рис. 4.1. Установка входных полей в алгоритме Кохонена

На этой же вкладке при нажатии кнопки Настройка нормализации откроется окно, где можно задать значимость каждого входного поля. Оставьте значимость всех полей без изменений.

Поскольку любой метод кластеризации, в том числе алгоритм Кохонена, субъективен, смысл в выделении отдельного тестового множества, как правило, отсутствует. Оставьте в обучающем множестве 100% записей (рис. 4.2).

На третьей вкладке задаются размер и форма карты Кохонена (рис. 4.3). Увеличьте размер карты до 24×18 (соотношение рекомендуется делать крат­ным 4:3).

Рис. 4.2. Разбиение набора данных на обучающее и тестовое множества

Рис. 4.3. Параметры будущей карты Кохонена

На следующем шаге оставьте все без изменений (рис. 4.4).

Наконец, на последнем шаге, предшествующем обучению, настраиваются параметры обучения алгоритма Кохонена (рис. 4.5).

Здесь задаются следующие опции.

Способ начальной инициализации карты определяет, как будут установлены начальные веса нейронов карты. Удачно выбранный способ инициализации может существенно ускорить обучение и привести к получению более качественных результатов. Доступны три варианта.

Рис. 4.4. Параметры остановки алгоритма Кохонена

Рис. 4.5. Параметры обучения сети Кохонена

При выборе способа начальной инициализации нужно руководствоваться следующей информацией:

Между указанными параметрами и способом начальной инициализации существует много зависимостей. Выделим несколько главных.

Скорость обучения – задается скорость обучения в начале и в конце обу­чения сети Кохонена. Рекомендуемые значения: 0,1-0,3 в начале обучения и 0,05-0,005 в конце.

Радиус обучения – задается радиус обучения в начале и в конце обучения сети Кохонена, а также тип функции соседства. Вначале радиус обучения должен быть достаточно большим – примерно половина размера карты (максимальное линейное расстояние от любого нейрона до другого любого нейрона) или меньше, а в конце – достаточно малым, 1 или меньше. Начальный радиус в Deductor подбирается автоматически в зависимости от размера карты.

В этом же блоке задается вид функции соседства: гауссова или ступенчатая. Если функция соседства ступенчатая, то «соседями» нейрона-победителя будут считаться все нейроны, линейное расстояние до которых не больше текущего радиуса обучения. Если применяется гауссова функция соседства, то «соседями» нейрона-победителя будут считаться все нейроны карты, но в разной степени. При использовании гауссовой функции соседства обучение проходит более плавно и равномерно, так как одновременно изменяются веса всех нейронов, что может дать немного лучший результат, чем, если бы использовалась ступенчатая функция. Однако и времени на обучение требуется больше, поскольку в каждой эпохе корректируются все нейроны.

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

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

Нажмите кнопку Пуск – в следующем окне можно будет увидеть динамику процесса обучения сети Кохонена (рис. 4.6). По умолчанию алгоритм делает 500 итераций (эпох). Если предварительно установить флажок Рестарт, то веса нейронов будут проинициализированы согласно выбранному на предыдущем шаге способу инициализации, иначе обучение начнется с текущих весовых коэффициентов (это справедливо только при повторной настройке узла).

Рис. 4.6. Обучение сети Кохонена

Для обученной сети Кохонена предлагается специализированный визуализатор – Карта Кохонена. Параметры ее отображения задаются на одноименной вкладке мастера (рис. 4.7).

Область Список допустимых отображений карты содержит три группы – Входные столбцы, Выходные столбцы и Специальные. Последние не связаны с каким-либо полем набора данных, а служат для анализа всей карты.

Рис. 4.7. Параметры карты Кохонена

 Матрица плотности попадания отображает количество объектов, попавших в ячейку.

 Кластеры – ячейки карты Кохонена, объединенные в кластеры алгоритмом k-means.

 Проекция Саммона – матрица, являющаяся результатом проецирования многомерных данных на плоскость. При этом данные, расположенные рядом в исходной многомерной выборке, будут расположены рядом и на плоскости. Дополнительно справа имеется еще ряд настроек.

 Способ раскрашивания ячеек – цветная палитра или градация серого. Цветная палитра нагляднее, однако если потребуется встраивать карту Кохонена в отчет с последующей распечаткой на бумажном носителе, то лучше выбрать серую цветовую схему.

 Сглаживание цветов карты – цвета на картах будут сглажены, то есть будет обеспечен более плавный переход цветов. Это поможет устранить случайные выбросы.

 Границы ячеек – установка данного флажка позволит включить отображение границ ячеек на карте.

 Границы кластеров – установка данного флажка позволит включить отображение границ кластеров на всех картах. Этот режим удобен для анализа структуры кластеров.

 Размер ячейки по умолчанию – указывается размер ячейки на карте в пикселях (по умолчанию 16).

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

На рис. 4.8 приведены получившиеся карты Кохонена. По матрице плотности попадания видно, что в одной ячейке сосредоточилось 259 объектов. Эта ячейка выделяется белым цветом. Можно приступать к интерпретации результатов кластеризации.

Рис. 4.8. Карты Кохонена для сегментации абонентов сети сотовой связи

Попробуем выделить на карте изолированные области самостоятельно (без использования встроенного метода группировки ячеек алгоритмом k-means).

Анализируя карту Возраст (рис. 4.8), видим, что четко выделяются три возрастные группы: молодежь, люди среднего возраста и люди старше 45 лет.

Остановимся подробнее на молодежи. Она неоднородна – здесь можно выделить несколько кластеров. Первый расположен в правом нижнем углу (рис. 4.10). Абоненты этой условной зоны активно и продолжительно разговаривают по телефону вечером и ночью, отправляют много SMS-сообщений, соответственно, и тратят на разговоры больше денег, чем другие представители возрастной группы. Обратите внимание, что в этот кластер попала львиная доля тех, кто увлекается ночными разговорами. Можно предположить, что это студенты и молодежь, часто проводящие вечера вне дома.

Рис. 4.10. Кластер «Активная молодежь»

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

Рис. 4.11. Кластер молодежи с пониженным потреблением услуг связи

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

Продолжим интерпретацию карты Кохонена и теперь остановимся на людях зрелого и пенсионного возраста. Обратим внимание на ярко выраженный сгусток в верхней области, в котором практически по всем признакам, кроме SMS, наблюдаются высокие значения, в том числе по звонкам в другие города и страны (рис. 4.12). Это так называемые VIP-клиенты: бизнесмены, руководители, топ-менеджеры. Они преимущественно зрелого возраста, очень много разговаривают днем и вечером (скорее всего, по работе) и практически не пользуются SMS-услугами. Месячные расходы на связь у этой категории абонентов самые высокие.

Рис. 4.12. Кластер «VIP-клиенты»

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

Рис. 4.13. Пенсионеры, практически не делающие исходящих звонков

Изучим статистические характеристики этой группы людей.

Нажмите кнопку Показать/скрыть окно данных, затем – кнопку Изменить способ фильтрации и установите Фильтр по выделенному. Там же переключитесь в режим статистики (кнопка Способ отображения). Колонка Среднее даст следующие вычисленные значения (табл. 4.2).

Таблица 4.2. Статистические характеристики кластера 5

Признак

Среднее значение

1

Возраст

65,7

2

Среднемесячный расход

41,5

3

Средняя продолжительность разговоров, мин

2,1

4

Звонков днем за месяц

9,3

5

Звонков вечером за месяц

6,4

6

Звонков ночью за месяц

0,0

7

Звонки в другие города

0

8

Звонки в другие страны

0

9

Доля звонков на стационарные телефоны, %

6,3

10

Количество SMS в месяц

0

Остальных людей в возрастной группе «Зрелый и пенсионный возраст» объединяет то, что они в основном звонят вечером и не используют SMS-сервис. С большой долей вероятности можно утверждать, что сюда входят работающие пенсионеры, дачники, родители совершеннолетних детей.

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

По площади, которую занимают на карте Кохонена условно выделенные кластеры, судить о мощности каждого из них трудно: в разных ячейках содержится различное число объектов. Поэтому рекомендуется фиксировать число объектов, попавших в каждый кластер. Зная мощность кластера, можно дополнительно оценить его прибыльность – сумму по признаку Среднемесячный расход (табл. 4.3).

Таблица 4.3. Мощности кластеров

№ кластера

Условное название кластера

Мощность кластера

Прибыльность кластера

1

Активная молодежь

2

Молодежь, мало пользующаяся услугами

3

Основная молодежь

4

VIP-клиенты

5

«Малоговорящие» пенсионеры

569 (13 %)

23613,5

6

Активная группа зрелого и пенсионного возраста

7

Работающие люди среднего возраста

Теперь включите автоматическую группировку ячеек в кластеры: Настроить отображения – Кластеры. При установленном флажке Автоматически определить количество кластеров (с уровнем значимости 1,00) получится 16 кластеров (рис. 4.14, а). Это очень много, поэтому следует принудительно установить, скажем, 6 кластеров (рис. 4.14, б).

а

б

Рис. 4.14. Варианты автоматической группировки ячеек алгоритмом k-means: а – автоматическое число кластеров, б – ручное задание числа кластеров, равное 6

Видно, что автоматический алгоритм k-means при 6 кластерах выделил целиком кластер «Зрелый и пенсионный возраст», раздробились группы «Молодежь» и «Люди среднего возраста». Не были явно выделены кластеры 2, 4 и 5 из табл. 4.3. Тем не менее, автоматическая группировка ячеек в Deductor имеет одно важное преимущество: в наборе данных появляется столбец Кластер с номером, который можно использовать в дальнейшем, в частности «прогонять» новые объекты и получать для них номер кластера.