Опубликован: 15.06.2007 | Уровень: специалист | Доступ: платный
Лекция 5:

Методы и алгоритмы анализа структуры многомерных данных

< Лекция 4 || Лекция 5: 123 || Лекция 6 >

Быстрый кластерный анализ

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

Здесь наиболее приемлем быстрый алгоритм, носящий название метода " k -средних". Он реализуется в пакете командой QUICK CLUSTER или командой меню k -means.

Алгоритм заключается в следующем: выбирается заданное число k -точек и на первом шаге эти точки рассматриваются как "центры" кластеров. Каждому кластеру соответствует один центр. Объекты распределяются по кластерам по такому принципу: каждый объект относится к кластеру с ближайшим к этому объекту центром. Таким образом, все объекты распределились по k кластерам.

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

Синтаксис команды:

QUICK CLUSTER W3d1 TO W3D6/CRITERIA CLUSTERS(3) /MISSING=PAIRWISE /SAVE CLUSTER(SAVCLU) /PRINT ANOVA.

За именем команды располагаются переменные, по которым происходит кластеризация. Параметр /CRITERIA CLUSTERS задает в скобках число кластеров. Подкомандой /SAVE CLUSTER можно сохранить полученную классификацию в виде переменной, имя которой дается в скобках. Подкоманда /PRINT ANOVA позволяет провести по каждой переменной одномерный дисперсионный анализ — сравнение средних в кластерах. Этот анализ имеет лишь описательное значение и позволяет определить переменные, которые не оказывают никакого влияния на классификацию.

Команда использует только евклидово расстояние. При этом часть переменных может иметь неопределенные значения, расстояния до центров определяются по определенным значениям. Для использования такой возможности следует употребить подкоманду /MISSING=PAIRWISE.

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

Для этого можно использовать команду DESCRIPTIVE. Напомним, что подкоманда /save в ней позволяет автоматически сохранить стандартизованные переменные. Кроме того, хорошие средства стандартизующих преобразований шкал дает команда RANK.

В выдаче распечатываются центры кластеров (средние значения переменных кластеризации для каждого кластера), получаемые на каждой итерации алгоритма. Однако для нас полезна лишь часть выдачи, помеченная текстом "Final centres".

Интерпретация кластеров осуществляется на основе сравнения средних значений, выдаваемых процедурой, а также исследования сохраненной переменной средствами статистического пакета.

Пример использования QUICK CLUSTER. Для иллюстрации построим классификацию по предварительно отобранным данным городских семей по жилплощади и душевому доходу. Такая классификация может грубо, но наглядно показать различие семей по благосостоянию.

В данных, полученных из обследования RLMS 1998 г. имеются переменные: c5 — жилплощадь, приходящаяся на семью, memb — число членов семьи, df14 — суммарные денежные доходы семьи.

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

*вычисление логарифма жилплощади на члена семьи.

compute lns=Ln(dc5/memb).

*вычисление логарифма душевого дохода.

compute lincome=ln(df14/memb).

*стандартизация переменных.

DESCRIPTIVES VARIABLES=lincome lns/SAVE .

QUICK CLUSTER zlincome zlns /MISSING=PAIRWISE /CRITERIA= CLUSTER(3) /SAVE CLUSTER /PRINT ANOVA.

На основании таблицы 7.5 центров классов интерпретация полученных кластеров следующая:

Кластер 1 — зажиточные семьи, имеющие относительно большой доход и жилплощадь.

Кластер 2 — семьи, проживающие в квартирах с небольшой площадью, но имеющие относительно высокий доход.

Кластер 3 — семьи, имеющие низкий доход и ограниченные в жилплощади.

Кластер 4 — семьи, имеющие несколько больший доход, чем в среднем, но ограниченные в жилплощади.

Таблица 5.3. Центры кластеров (Final Cluster Centers)
Cluster
1 2 3 4
Zscore(LINCOME) 1.26 0.52 -1.08 -0.40
Zscore(LNS) 1.35 -0.56 -0.86 0.58
Таблица 5.4. Дисперсионный анализ в методе k-средних (ANOVA, имееет только описательное значение)
Cluster Error F Sig
Mean Square Df Mean Square Df
ZLINCOME Zscore(LINCOME) 513.006 3 .370 2440 1384.7 0
ZLNS Zscore(LNS) 530.153 3 .363 2491 1461.6 0
Классификация семей по душевому доходу Lincome и жилплощади на человека LNS (в логарифмических шкалах).

Рис. 5.5. Классификация семей по душевому доходу Lincome и жилплощади на человека LNS (в логарифмических шкалах).

Дисперсионный анализ (табл. 5.4) показал, что по обоим переменным различие кластеров существенно. Но о статистической значимости переменных говорить бессмысленно, поскольку гипотеза дисперсионного анализа — по сути, независимость групп и "зависимой" переменной, а в данном случае группы сформированы на основе значений "независимых" переменных.

Полезно рассмотреть график рассеяния данных по кластерам (рис. 5.5). В нашем случае, пожалуй, не стоит говорить о выделении "сгущений" точек в признаковом пространстве, скорее, программа нашла разумные границы для описания типов, выделив их в непрерывном двумерном распределении.

< Лекция 4 || Лекция 5: 123 || Лекция 6 >
Сергей Пчеляков
Сергей Пчеляков

Добрый день!

В курсе "Проектирование систем искусственного интеллекта" начал проходить обучение и сдал тесты по лекциям 1,2,3,4. Но видимо из-за того что не записался на курс, после того как записался на курс у меня затерлись результаты сданных тестов. Можно как-то исправить (восстановить результаты по тестам 1,2,3,4) ?

Виктор Рубцов
Виктор Рубцов
Музафар Холаев
Музафар Холаев
Россия
Александр Останин
Александр Останин
Россия, Лысьва