sas_clusterization_hw

advertisement
SAS/STAT CLUSTERIZATION HOMEWORK
Кластеризация множества объектов – процесс во многом творческий, и
его результаты непросто формализовать и оценить строгими
математическими способами. Поэтому при выполнении этого домашнего
задания вам не потребуются ни навыки программирования, ни скольконибудь серьезные логические рассуждения. Его цель – дать вам
возможность «пощупать» кластеризацию: развить интуицию в вопросе
подготовки данных и выборе параметров алгоритмов, а также сравнить
различные методы визуально.
Ответом на домашнее задание будут считаться ответы на все
вопросы, поставленные в тексте оранжевого цвета. И, конечно, любые
дополнителтные эксперименты с настройками процедур и программами
приветствуются: вы потратите лишние 20 секунд, зато увидите
множество наглядных картинок и будете гораздо увереннее
ориентироваться в вопросах кластеризации.
Задание №0. Создание наборов данных для дальнейшей работы
clus00d01.sas
1. Сгенерировать наборы данных с помощью программы
clus00d01.sas. Большинство из них понадобятся нам в дальнейшей
работе.
Задание №1. Влияние типа метрики на результаты кластеризации
clus01d01.sas
1. Запустить программу clus01d01.sas.
Эта программа рассчитывает «похожесть» финансовой истории15
американских компаний на основании данных о выплачиваемых
дивидендах за последние 5 лет. Расчет проводится с участием двух
разных метрик – Евклидовой и Манхэттенской.
Задание: привести списки компаний в обоих кластерах, а также
список компаний, поменявших кластеры из-за смены метрики.
Задание №2. Выбор значимых переменных (VARCLUS)
clus02d01.sas
Среди исходных характеристик объектов часто встречаются как
незначимые признаки (в смысле незначимости для цели кластерного
анализа), так и группы скоррелированных признаков. Так как в процессе
кластеризации по определению отсутствует целевая переменная,
фильтрация незначимых признаков должна проводиться до
кластерного анализа (например, на основе априорных соображений). В
то же время с корреляцией между признаками можно бороться, выделяя
кластеры связанных переменных и затем выбирая одного представителя
из каждого такого кластера для последующего анализа. В SAS/STAT для
этого существует процедура PROC VARCLUS, проводящая Principal
Component Analysis переменных для определения их связи между собой.
Посмотреть на её работу вам и предлагается в этом задании.
1. Запустить программу clus02d01.sas. В ней идет поиск признаков,
наиболее подходящих для разделения на группы различных видов
пиццы. При этом с помощью PCA определяются кластеры
связанных признаков, а на основании сопутствующей статистики
можно выбрать переменные для дальнейшей кластеризации видов
пиццы.
Задание: на сколько кластеров разбились 7 признаков
характеристик пищевой ценности пиццы? Какие из признаков вы
возьмете для последующего кластерного анализа? (смотреть на 1R^2 Ratio, грубо равного отношению силы связи переменной с
собственным кластером к силе связи переменной с ближайшим
чужим кластером)
Задание №3. Визуальное исследование данных
clus02d02.sas, clus02d03.sas
Performance алгоритма кластеризации сильно зависит от формы и
количества кластеров в исходных данных. Практически все алгоритмы
кластеризации легко находят сферические кластеры, но не все
справляются с кластерами продолговатой формы. Кроме того, целые
классы алгоритмов (например, hierarchical clustering) плохо
переваривают большие объемы данных. Именно поэтому определение
предполагаемой формы кластеров и их количества – неотъемлемая
составляющая подготовки данных и выбора метода кластеризации.
1. PCA plot. Запустите clus02d02.sas. Эта программа пытается
выделить кластеры в пространстве собственных векторов
ковариационной
матрицы,
построенной
на
наименее
скоррелированных переменных, найденных в предыдущем
задании.
Задание: сколько кластеров вы видите? Сколько среди них
сферических, а сколько – нежелательной продолговатой формы?
2. MultiDimensional Scaling plot (MDS plot).
Запустите clus02d03.sas. Эта программа находит оптимальную (в
смысле сохранения расстояний между векторами) проекцию Nмерного пространства в 2-мерное, т.е. позволяет нарисовать
исходные многомерные вектора на 2D графике.
Задание: Видно ли какое-либо отличие этого метода от PCAпроекции в нашем случае? Почему?
Задание №4. Влияние метода стандартизации на вид кластеров
clus02d04.sas
При использовании любого метода анализа данных полезно сперва
привести все переменные к единой шкале – дабы не сравнивать слонов
и апельсины. Кластеризация здесь не является исключением, однако
выбор метода стандартизации имеет серьезное влияние на её результат.
1. Запустите clus02d04.sas. Эта программа сравнивает разбиение
исходной выборки на кластеры при использовании различных
алгоритмов стандартизации переменных. Классы объектов в этой
выборке нам известны, что делает возможным оценку качества и
сравнение эффективности алгоритмов кластеризации.
Задание: найдите в отчете квадратные матрицы – они описывают
распределение объектов разных классов по различным кластерам.
Какой метод стандартизации приводит к самой качественной
кластеризации?
Задание №5. Приведение кластеров к сферической форме
clus02d05.sas
Сферическая форма кластеров – важный шаг на пути к оптимальной
группировке объектов выборки. Поцедура PROC ACECLUS пытается
подобрать такое преобразование пространства, чтобы все кластеры
оказались максимально «сферическими».
1. Запустите clus02d05.sas.
Задание: посмотреть на работу PROC ACECLUS. Заметьте , как
отрабатывает алгоритм K-Means. Какой общий вывод об условиях
применимости этого алгоритма вы бы сделали?
Задание №6. Алгоритм K-Means
clus03d01.sas, clus03s01.sas
K-Means – один из самых простых алгоритмов кластеризации, относится
к классу Partitive (Optimization) Clustering (то есть кластеризация
сводится к оптимизации некоей функции потерь, рассчитываемой на
всей выборке объектов). Алгоритм разбивает все многомерное
пространство прямыми линиями на ячейкт Вороного. По этой причине
он неплохо работает со сферическими кластерами, но почти всегда
терпит поражение в попытках уловить форму продолговатого кластера.
1. Запустите clus03d01.sas. Эта программа рассчитывает кластеры
населения по их покупательной способности / плотности
расселения. Цель – понять, в каких регионах страны размещать
продуктовые ларьки / супермаркеты / дорогие бутики.
Задание: посмотреть на работу PROC FASTCLUS. Заметьте, что
изначально искалось разбиение множества на 6 кластеров, а на
карте США отображены только 3 кластера (каждый соответствует
своему типу магазина). Посмотрите на сопутствующую статистику.
Что решил сделать с начальным разбиением аналитик и почему?
2. Запустите clus03s01.sas. Эта программа показывает, как с помощью
предварительной кластеризации выборки отловить выбросы (и
затем удалить их из процесса обучения, конечно)
Задание: что служит критерием отнесениия объекта к выбросу?
Сильно ли меняется вид кластеризации после их фильтрации?
Задание №7. Сравнение K-Means и Non-Parametric Clustering
clus03d03.sas
Методы непараметрической кластеризации относятся к классу Partitive
Clustering (вспоминаем, что этот класс старается сгруппировать
объекты, минимизируя некую глобальную функцию потерь) и пытаются
аппроксимировать плотность распределения объектов в многомерном
пространстве с помощью линейной комбинации так называемых
ядерных функций (Kernel Functions). Все эти функции имеют
одинаковый общий вид (обычно колоколообразный) и 1-2
настраиваемых параметра. Собственно кластеризация сводится к
а)подгонке числа и параметров ядер так, чтобы их сумма была по форме
наиболее близка к форме плотности распределения объектов и
б)выделению в отдельные кластеры регионов вокруг наиболее «высоких
гор» на этой аппроксимации (области с высокой концентрацией
объектов), рассеченных «глубокими долинами» (области с низкой
плотностью объектов). Заметьте – в постановке задачи присутствуют
параметры, но отсутствует модель плотности распределения
объектов.
Именно
поэтому
данный
метод
считается
непараметрическим (в том смысле, что нет модели, которую мы
настраиваем путем подкручивания параметров). В SAS/STAT эта задача
решается с помощью PROC MODECLUS, причем в эту процедуру
добавлена возможность иерархической кластеризации с помощью опции
JOIN= (сколько полученных при начальном разбиении кластеров мы
хотим затем объединить)
1. Запустите clus03d03.sas.
Задание: посмотрите на работу PROC MODECLUS. Сравните работу
этой процедуры с PROC FASTCLUS. Круто, правда?  В чем, чисто
визуально, преимущества непараметрической кластеризации над
алгоритмом K-Means?
Задание №8. Hierarchical Clustering + Determining Number of Clusters
clus04d01.sas, clus05d01.sas, clus05d03.sas
Иерархическая кластеризация – самый математически строгий класс
алгоритмов. В процессе построения модели мы можем определить
оптимальное число кластеров на основе четких критериев и
кардинально поменять поведение алгоритма одной лишь сменой
используемой метрики для расчета расстояний. Однако эти алгоритмы
тяжело справляются с большими объемами данных, и поэтому
типичный workflow при кластеризации большого числа объектов
выглядит следующим образом: 1) выделить ~1000-2000 маленьких
кластеров с помощью K-Means, 2) сгруппировать их с помощью
hierarchical clustering в финальную группировку (~10-100 кластеров).
А теперь вспомним, что «высокая» цель любого алгоритма
кластеризации – минимизации внутрикластерного разброса объектов с
одновременной максимизацией межкластерного. Причем эти две
подцели можно скомбинировать в единой штрафной функции. Таким
образом, кластерный анализ – это всегда решение задачи
оптимизации. Если теперь взглянуть на вышеописанный
комбинированный метод с этой точки зрения, то нам станет понятно,
что первым шагом PROC FASTCLUS (K-Means) старается ограничить
область глобального минимума штрафной функции, а уже затем внутри
этой области иерархическая кластеризация отыскивает один из
локальных минимумов. И это очень круто, потому что вероятность
найти настоящий глобальный оптимум штрафной функции при таком
раскладе существенно возрастает (а этот оптимум = идеальная
кластеризация)
Все многообразие методов иерархической кластеризации в SAS/STAT
упаковано в PROC CLUSTER (построение полной иерархии) и PROC TREE
(усечение и визуализация иерархии; берет на вход результат PROC
CLUSTER)
1. Запустите clus04d01.sas. Сравнение методов иерархической
кластеризации (точнее, их метрик)
Задание: посмотреть на работу PROC CLUSTER с различными
метриками расстояния. С помощью PROC MDS построить график
распределения объектов на плоскости (и прислать его мне!). На
основе таблицы ranking of hierarchical methods (самый низ
отчета) выберите самую хорошую и самую плохую метрики и
выясните (глядя на MDS Plot), почему они оказались таковыми?
(ответ тоже прислать!)
2. Запустите clus05d01.sas. В этом примере определяется
оптимальное число кластеров в финальной кластеризации.
Задание: посмотреть, как по мере создания иерархии кластеров
можно параллельно оценивать оптимальность их количества.
Какое число кластеров оптимально в этом примере? Исходя из
каких критериев? (см. лекцию, слайды про CCC, PSEUDO-F и
PSEUDO-T2)
3. Запустите clus05d03.sas. В этом примере задача кластеризации
решается в 2 шага: сначала начальное множество объектов
группируется в большое число маленьких кластеров с помощью
K-Means (PROC FASTCLUS); а затем уже эти микро-кластеры
группируются иерархическим алгоритмом.
Задание: посмотреть на работу программы и выходную статистику
Задание №9. Happy Household Survey
clus06d01.sas - clus06d05.sas
Зачастую кластеризация служит для решения каких-то реальных задач
бизнеса, например разбиения покупателей магазина на группы в
зависимости от их среднего чека и продуктовой корзины. В этом случае
мало кластеризовать выборку – важно придать конечным сегментам
бытовой смысл («в этой группе покупают мало, но всегда дорогие
товары – наверное, это бизнесмены ходят за дорогим алкоголем»).
Процедура «осознания» этого смысла называется профилированием
кластеров. При этом можно решать задачу в двух разных направлениях:
1) искать переменные, сильнее всего дифференцирующие кластеры
одновременно (и затем найти «типичного» представителя кластера);
2) или же искать переменные, сильнее всего отделяющие данный
кластер от всех остальных.
Демонстрации этих понятий, равно как и созданию у читателя
целостного понимания процесса кластеризации (от подготовки данных
до профилирирования итоговых кластеров) посвящён масштабный кейс
«Happy Household Survey»
Сюжет кейса таков: команда маркетологов крупной сети американских
супермаркетов с весомым присутствием в интернете проводит
исследование, нацеленное на сегментацию клиентов и последующие
маркетинговые действия в отношении каждой из групп. Эта процедура
проводится на основе анкетных данных, собранных по итогам онлайнопроса на на сайте компании. Всего анкет собрано около 40 000, для
сегментации используется 200 из них. Анкета содержит 13 вопросов о
качестве сервиса и интересах клиентов, ответ – число от 1 до 5 по 5балльной шкале.
Задание: позапускать по очереди программы clus06d01.sas clus06d05.sas, составить цельную картину о методологии кластеризации
для решения реальных бизнес-задач. В чем она заключается? Опишите
по пунктам.
Список программ:
0.
1.
2.
3.
4.
5.
6.
7.
8.
9.
clus00d01.sas
clus01d01.sas
clus02d01.sas
clus02d02.sas, clus02d03.sas
clus02d04.sas
clus02d05.sas
clus03d01.sas, clus03s01.sas
clus03d03.sas
clus04d01.sas, clus05d01.sas, clus05d03.sas
clus06d01.sas - clus06d05.sas
Related documents
Download