Лаб№4_карты_Кохонена. Лабораторная работа 4 Карты Кохонена в Deductor Studio Цель работы
Скачать 1.18 Mb.
|
1 2 Решение задачиОткройте сценарий som. ded для изучения дальнейшего материала. Покажем последовательность решения бизнес-задачи сегментации абонентов с помощью подхода, который основан на алгоритме Кохонена, которая состоит из двух шагов: кластеризация объектов алгоритмом Кохонена; построение и интерпретация карты Кохонена. В Deductor Studio сети и карты Кохонена реализованы в обработчике Карта Кохонена, где содержатся сам алгоритм Кохонена и специальный визуализатор Карта Кохонена. В Deductor канонический алгоритм Кохонена дополнен рядом возможностей, а именно: Алгоритм Кохонена применяется к сети Кохонена, состоящих из ячеек, упорядоченных на плоскости. По умолчанию размер карты равен 16 х 12, что соответствует 192 ячейкам. В выходном наборе данных алгоритм Кохонена формирует поля Номер ячейки и Расстояние до центра ячейки. Ячейки карты с помощью специальной дополнительной процедуры объединяются в кластеры. Эта процедура – алгоритм k-means, причем имеется возможность автоматически определять количество кластеров. В выходном наборе данных алгоритм k- means формирует поля Номер кластера и Расстояние до центра кластера. Каждый входной признак может иметь весовой коэффициент от 0 до 100%, последний влияет на расчет евклидового расстояния между векторами. Для построения профилей клиентов воспользуется сетями и картами Кохонена. Импортируем в Deductor набор данных из файла mobile. txt . Запустим мастер обработки и выберем узел Карта Кохонена . Установим все поля, кроме Код, входными. Рисунок 1 – Настройка назначений столбцов На этой же вкладки при нажатии кнопки Настройка нормализации … откроется окно, где можно задать значимость каждого входного поля. Оставим значимость одинаковой для всех полей без изменений. ЗамечаниеПоскольку любой метод кластеризации, в том числе и алгоритм Кохонена, субъективен, смысл в выделении отдельного, тестового множества, как правило, отсутствует. Оставим в обучающем 100 % записей (рисунок 2). Рисунок 2 – Разбиение набора данных на обучающее и тестовое множества На третьей вкладке задаются размер и форма карты Кохонена (рисунок 3). Пока что согласимся с настройками по умолчанию – шестиугольные ячейки, размер 16х12. Рисунок 3 – Параметры будущей карты Кохонена На следующем шаге также оставим все без изменений (рисунок 4). Рисунок 4 – Параметры остановки алгоритма Кохонена Наконец, на последнем шаге, предшествующем обучению, настраиваются параметры обучения алгоритма Кохонена (рисунок 5). Здесь задаются следующие опции. Рисунок 5 – Параметры обучения сети Кохонена Способ начальной инициализации кар ты определяет, как будут установлены начальные веса нейронов карты. Удачно выбранный способ инициализации может существенно ускорить обучение и привести к получению более качественных результатов. Доступны три варианта: Случайнымизначениями– начальные веса нейронов будут инициированы случайными значениями Изобучающегомножества– в качестве начальных весов будут использоваться случайные примеры из обучающего множества. Изсобственныхвекторов– начальные веса нейронов карты будут проинициализированы значениями подмножества гиперплоскости, через которую проходят два главных собственных вектора матрицы ковариации входных значений обучающей выборки. При выборе способа начальной инициализации (рисунок 6)следует руководствоваться следующей информацией: объемом обучающей выборки; количеством эпох, отведенных для обучения; размером карты. Между указанными параметрами и способом начальной инициализации существует много зависимостей. Выделим несколько главных. Если объем обучающей выборки значительно (в 100 и более) превышает число ячеек карты и время обучения не играет первоочередной роли, то лучше выбрать инициализациюслучайнымизначениями, т.к. это даст меньшую вероятность попадания в локальный минимум ошибки кластеризации. Если объем обучающей выборки не очень велик, время обучения ограниченно или необходимо уменьшить вероятность появления после обучения пустых ячеек, в которые не попало ни одного экземпляра обучающей выборки, то следует использовать инициализациюпримерамиизобучающегомножества. Инициализацию из собственных векторов можно использовать при любом стечении обстоятельств. Единственное замечание: вероятность появления пустых ячеек после обучения выше, чем при инициализации примерами из обучающего множества. Именно этот способ лучше выбирать при первом ознакомлении с данными. Скорость обучения – задается скорость обучения в начале и в конце обучения сети Кохонена. Рекомендуемые значения: 0,1–0,3 в начале и 0,05–0,005 в конце обучения. Радиус обучения – задается радиус обучения в начале и в конце обучения сети Кохонена. Радиус в начале должен быть достаточно большой – примерно половина или меньше размера карты (максимальное линейное расстояние от любого нейрона до другого любого нейрона). а в конце – достаточно малым, примерно 1 или меньше. Начальный радиус в Deductor подбирается автоматически в зависимости от размера карты. В этом же блоке задается Функция соседства : Гауссова или Ступенчатая. Если функция соседства Ступенчатая, то «соседями» для нейрона-победителя будут считаться все нейроны, линейное расстояние до которых не больше текущего радиуса обучения. Если используется Гауссова функция соседства, то «соседями» для нейрона- победителя будут считаться все нейроны карты, но в разной степени полноты. При использовании Гауссовой функции соседства обучение проходит более плавно и равномерно, так как одновременно изменяются веса всех нейронов, что может дать немного лучший результат, чем если бы использовалась ступенчатая функция. Однако время, необходимое на обучение, требуется немного большее, по причине того, что на каждой эпохе корректируются все нейроны. Кластеризация – в этой области указываются параметры алгоритма k-means (G-means), который запускается после алгоритма Кохонена для группировки ячеек карты. Здесь нужно только определить, позволить алгоритму автоматически определить число кластеров (G-means), или сразу зафиксировать его (k-means). Следует знать, что автоматически подбираемое число кластеров не всегда приводит к желаемому результату – число кластеров может предлагаться слишком большим, поэтому рассчитывать на эту опцию можно только на этапе исследования данных. В следующем окне, нажав кнопку Пуск, можно будет увидеть динамику процесса обучения сети Кохонена (рисунок 6). По умолчанию алгоритм делает 500 итераций (эпох). Если предварительно установить флаг Рестарт , то веса нейронов будут проинициализированы согласно выбранному на предыдущем шаге способу инициализации, иначе обучение начнется с текущих весовых коэффициентов (это справедливо только при повторной настройке узла). Рисунок 6 – Обучение сети Кохонена К обученной сети Кохонена предлагается специализированный визуализатор – Карта Кохонена . Параметры ее отображения задаются на специальной вкладке мастера (рисунок 7). Список допустимых отображений карты содержит три группы – входные поля, выходные поля и специальные. Последние не связаны с каким-либо полем набора данных, а служат для анализа всей карты. Матрицарасстоянийприменяется для визуализации структуры кластеров, полученных в результате обучения карты. Большое значение говорит о том, что данный нейрон сильно отличается от окружающих и относится к другому классу. Матрицаошибокквантования– отображает среднее расстояние от расположения примеров до центра ячейки. Расстояние считается как евклидово расстояние. Матрица ошибок квантования показывает, насколько хорошо обучена сеть Кохонена. Чем меньше среднее расстояние до центра ячейки, тем ближе к ней расположены примеры, и тем лучше модель. Матрицаплотностипопадания– отображает количество объектов, попавших в ячейку. Кластеры– ячейки карты Кохонена, объединенные в кластеры алгоритмом k-means. Проекция Саммона – матрица, являющаяся результатом проецирования многомерных данных на плоскость. При этом данные, расположенные рядом в исходной многомерной выборке, будут расположены рядом и на плоскости Рисунок 7 – Настройки визуализатора «Карта Кохонена» Дополнительно справа имеется еще ряд настроек: Способраскрашиванияячеек–цветная палитра и или градация серого. Цветная палитра нагляднее, однако, если вам потребуется встраивать карту Кохонена в печатный отчет с последующей распечаткой на бумажный носитель, то лучше выбрать серую цветовую схему. Сглаживаниецветовкарты– цвета на картах будут сглажены, т.е. будет обеспечен более плавный переход цветов. Это поможет устранить случайные выбросы. Границыячеек– установка данного флажка позволяет включить отображение границ ячеек на карте. Границыкластеров– установка данного флага позволит включить отображение границ кластеров на всех картах. Этот режим удобен для анализа структуры кластеров. Размерячейки– указывается размер ячейки на карте в пикселях (по умолчанию 16). Данное окно установки параметров карты можно будет в любой момент вызвать кнопкой Настроить отображения… на панели инструментов визуализатора. Посмотрим на получившуюся при настройках по умолчанию карту (рисунок 8 и файл som. ded ). Рисунок 9 – Фрагмент карты Кохонена, построенной при стандартных настройках Текущая ячейка отображается на карте маленькой окружностью черного цвета. Изменить текущую ячейку просто: щелкнуть мышью в нужный участок карты. Внизу каждого отображения на градиентной шкале в желтом прямоугольнике отображается числовое значение признака, соответствующее ее цвету. При работе с картой доступны операции, выполняемые с помощью кнопок на панели инструментов визуализатора или контекстного меню, вызываемого правой кнопкой мыши в любом окне карты. Ряд кнопок ( Границы ячеек , Границы кластеров , Настроить отображения… ) дублирует параметры, задаваемые в окне мастера настройки визуализатора (рисунок 7). Действия остальных кнопок описаны в таблице 2. Таблица 2
ЗамечаниеВернемся к сегментации заемщиков. По матрице плотности попадания видно (рис. 9), что в одной ячейке сосредоточилось 259 объектов. Эта ячейка выделяется желто-красным цветом. В принципе, можно остановиться на этом варианте кластеризации и приступить к интерпретации карты. Забегая вперед, скажем, что карта с увеличенным масштабом оказалась лучше, так как позволила «разглядеть» кластер, который не удавалось обнаружить при размере карты 16х12. Поэтому здесь универсальных рецептов нет. Понять, лучше или хуже карта Кохонена, можно только сравнив ее с картами, построенными при других настройках, сравнив матрицы ошибок квантования и матрицы плотности попадания. Поэтому построим еще одну карту Кохонена, увеличив ее размер в 1,5 раза до 24х18 и изменив способ инициализации («из обучающего множества») для снижения вероятности образования пустых ячеек. При размере карты 24х18 она имеет 432 ячейки, значит, на 1 ячейку приходится в среднем по 20 примеров. Полученная карта Кохонена изображена на рисунке 9 (см. также som. ded ). Рисунок 9 – Карты Кохонена масштаба 24х18 для сегментации абонентов сети сотовой связи Попробуем выделить на карте изолированные области самостоятельно без использования встроенного метода группировки ячеек алгоритмом k-means. Анализируя отображение карты Возраст (рисунок 10), видим, что четко выделяются три возрастные группы: молодежь, люди среднего возраста и люди старше 45 лет. Рисунок 10 – Деление по возрастным группам Остановимся подробнее на молодежи. Она не однородна, здесь можно выделить несколько кластеров. Первый расположился в правом нижнем углу (рисунок 11). Абоненты этой условной зоны на карте активно и продолжительно говорят вечером и ночью, отправляют много SMS- сообщений, соответственно, и тратят на разговоры больше денег, чем другая молодежь. Обратите внимание, что в этот кластер попала «львиная» доля людей, пользующихся ночными разговорами. Можно предположить, что это часть студентов и молодежи, часто проводящая вечера вне дома. Рисунок 11 – Деление по возрастным группам Вверху (рисунок 12) сосредоточилась небольшая по числу ячеек группа молодежи, которая не отличается активностью разговоров и SMS ни днем, ни вечером, ни, тем более, ночью, и, как следствие, их ежемесячные расходы на связь невелики Рисунок 12 – Кластер молодежи с пониженным потреблением услуг связи Остальные люди в возрастной группе молодежи ничем особенным не выделяются: умеренные расходы на связь и преимущественно вечерние разговоры. Можно предположить, что сюда попала наибольшая часть молодежи. Таким образом, в молодой возрастной группе мы обнаружили три кластера. Продолжим интерпретацию карты Кохонена и возьмем людей зрелого и пенсионного возраста. Обратим внимание на ярко выраженный сгусток в нижней области, в котором практически по всем признакам, кроме SMS, наблюдаются высокие значения, в том числе по звонкам в другие города и страны (рисунок 13). Это так называемые VIP-клиенты: бизнесмены, руководители, топ- менеджеры. Они преимущественно зрелого возраста, очень много разговаривают днем и вечером (скорее всего по работе) и практически не пользуются SMS-услугами. Месячные расходы на связь этой категории абонентов самые высокие. Рисунок 13 – Кластер «VIP-клиенты» Чуть выше в небольшом кластере наблюдается противоположная картина – люди практически не пользуются услугами сотовой сети (рисунок 14). Вероятнее всего это пенсионеры, которые имеют мобильную связь преимущественно для приема входящих звонков, а сами практически не совершают звонков. Их расходы на связь самые низкие, возможно, из-за того, что единственным их доходом является пенсия. Рисунок 14 – Пенсионеры, практически не делающие исходящих звонков Изучим статистические характеристики этой группы людей. Для этого нажмем на кнопку Показать окно данных и установим Фильтр по выделенному , а потом переключимся в режим статистики. Колонка Среднее даст следующие вычисленные значения (таблица 3).
Остальных людей в возрастной группе Зрелый и пенсионный возраст объединяет то, что они в основном звонят вечером и и не используют SMS-сервис. С большой долей вероятности можно утверждать, что сюда входят работающие пенсионеры, дачники, родители совершеннолетних детей. Осталась последняя, средневозрастная группа. Это кластер работающих людей. В нем можно отметить группу тех, кто совершает мало звонков вечером. По площади, которую занимают на карте Кохонена условно выделенные кластеры, судить о мощности каждого из них трудно: в разных ячейках содержится различное число объектов. Поэтому рекомендуется фиксировать число объектов, попавших в каждый кластер. Зная мощность кластера, в нашей задаче можно дополнительно оценить его прибыльность – сумму по полю Среднемесячный расход (таблица 4). Таблица 4
Теперь включим автоматическую группировку ячеек в кластеры: Настроить отображения ► Кластеры . При установленном флаге Автоматически опр еделить количество кластеров будет работать алгоритм G-means и получится 11 кластеров (рисунок 16а). Это очень много, поэтому принудительно установим, скажем, 6 кластеров (рисунок 16б). Рисунок 16 – Варианты автоматической группировки ячеек алгоритмом k-means, а – автоматическое число кластеров, б – ручное задание числа кластеров, равное 6 Видно, что автоматический алгоритм k-means при 6 кластерах выделил целиком кластер Зрелый и пенсионный возраст, раздробились группы Молодежь и Люди среднего возраста. Не были явно выделены кластеры №2, 4 и 5 из таблицы 3. Тем не менее, автоматическая группировка ячеек в Deductor имеет одно важное преимущество: в наборе данных появляется столбец Кластер с его номером, поэтому его можно использовать в дальнейшем, в частности, «прогонять» новые объекты и получать для них № кластера. Кластеризация «новых» объектовНаша карта Кохонена способна «прогонять» через себя новые объекты и относить их к той или иной ячейке, к тому или иному кластеру. Механизм этой операции прост: для нового объекта рассчитывается расстояние до всех центров ячеек и объект считается принадлежащим к том ячейке, расстояние до которой минимально. А зная номер ячейки, определяется номер кластера. В сценарии som. ded приведен пример «прогона» нового объекта (из файла mobile 1 abonent. txt ) с использованием обработчика Скрипт . Прогнозирование с помощью карт КохоненаРанее упоминалось, что опционально обработчик Карта Кохонена может иметь выходные поля. Как они будут использоваться? Представим, что в нашей задаче столбец Возраст не входной, а выходной. Он не будет использоваться при кластеризации. Однако после построения карты Кохонена появляется возможность для новых абонентов определять их возраст, зная остальные параметры: число звонков, среднемесячный расход и т.д. Иначе говоря, с помощью кластеризации будет решаться задача регрессии или классификации. Механизм работы этого следующий. Если выходное поле – дискретное, то выходом ячейки (по этому выходному полю) будет являться самое распространенное значение выходного поля тех строчек данных, которые «попали» в данную ячейку. Если же выходное поле – это непрерывное поле, то выходом ячейки (по этому выходному полю) будет являться среднее значений выходного поля тех строчек данных, которые «попали» в данную ячейку. Ограничения использования карт Кохонена в DeductorВ Deductor Studio алгоритм Кохонена ориентирован на работу преимущественно с числовыми типами данных, а также с упорядоченными (ординальными) типами. Обработка данных в полях, значения которых нельзя упорядочить будет приводить к некорректным результатам. Упорядочивание ординальных типов осуществляется на вкладке Настройка нормализации… Практическая работа:Изучите сценарий som. ded , прилагающийся к занятию. Выделите множества ячеек подобным образом, как это демонстрировалось на рисунках 10-13. Опишите, какими услугами и с какой частотой пользуются люди из средневозрастной группы. Проанализируйте людей, попавших в ячейку 48. Постройте карту Кохонена для сегментации абонентов, сделав поле Возраст выходным. Насколько сильно изменилась карта? Проведите эксперимент в визуализаторе Что-если: введите свои данные в поля Количество звонков, Среднемесячный расход и т.д. и спрогнозируйте свой возраст. Превратите карту Кохонена в обычную сеть Кохонена с шестью выходными нейронами. Найдите в справке и самостоятельно изучите отображение Проекция Саммона. Вопросы для проверки:Как выделить множество ячеек на карте и посмотреть объекты, попавшие в них? Как поставить текстовую метку на ячейке? Как проще всего посмотреть статистику по объектам, попавшим в ячейку? Какой кластер в приведенной бизнес-задаче, скорее всего, не удалось бы обнаружить при масштабе карты 16 х 12? В каких случаях следует задавать значимость входных полей? Как карта Кохонена может использоваться в задаче восстановления пропусков в данных? Опишите шаги, необходимые для этого. Почему при кластеризации в обработчике Карта Кохонена могут быть выходные поля? Каково их предназначение? В каком случае для карты Кохонена лучше установить цветовую палитру в серых тонах? Почему? 1 2 |