Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2012

.pdf
Скачиваний:
46
Добавлен:
15.03.2016
Размер:
1.79 Mб
Скачать

X := Xtest - тест бабочкой

m := 2

ε := 0.1

N := 14

Iter := 100

i := 0.. c − 1

k := 0.. N

Fk, i := rnd(1)

 

 

 

 

(

i )

Xc

 

:= X

− mX

 

mX := mean X

k, i

 

i

 

 

 

 

 

k, i

i

 

Ковариационная матрица

 

 

 

 

 

N−1

 

 

 

 

T

 

R :=

1

 

(XcT)

k

(XcT) k

 

 

 

 

 

 

 

N

k = 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B := R− 1

 

 

MC := FCL(X, c, B, Iter, ε , m)

 

Fn := MC0

Матрица принадлежностей кластерам

 

 

 

 

 

 

 

 

V := MC1

Координаты центров

 

 

 

 

 

 

 

 

 

 

 

 

(

0 )

(

 

1 )

 

 

X1k, i := if

Fn

k >

 

Fn

k, Xk, i

, 0

 

X2k, i := if (Fn 0 )k (Fn 1 )k, Xk, i, 0

Результат демонстрируется графически на рис. 8.

Рис. 8. Смещение координат центров кластеризации образцовой «Бабочки» при коррекции расстояний центр-объект нормой Махаланобиса

Практическое задание: формирование корректирующих выражений для стандартной евклидовой нормы в алгоритмах кластерного анализа.

41

Содержание задания: формирование матриц диагональной1 и дисперсионной2 норм; коррекция кластерной классификации разработанными нормами.

Для выполнения задания используется ранее созданный файл с тремя итерациями нечеткой кластеризации. Сделайте копию файла, формируйте матрицы нормы соответствующей размерности используемого координатного пространства. Для этого скорректируйте алгоритм каждой итерации (шаг 4 алгоритма в разд. 5.2), добавляя матрицу B в формулу определения расстояния центр-объект (5.6) с результатом модификации нормы по выражению (5.10) (см. «Пример программы»).

Результат практики: сравнительная графическая демонстрация результата кластеризации со стандартной евклидовой нормой, нормой модифицированной диагонально и по Махаланобису (рис. 8).

Контрольные вопросы

1.Поясните значение нормы для линейных пространств, объекты применения нормы, что она обобщает?

2.Назовите примеры измерений в любой практической области деятельности, где по вашему усмотрению целесообразно применение диагональной нормы, нормы Махаланобиса?

3.Роль дисперсионных характеристик в изменении (коррекции) стандартной нормы, или в чем смысл учета вариаций по направлениям?

5.3. Горный алгоритм

Теория. Горный алгоритм кластеризации предложен Ягером (Yager) и Филевым (Filev) в 1993 г. Особенностью алгоритма является то, что он не требует задания количества кластеров. Зависимость числа кластеров от свойств координатного пространства объектов может задавать разработчик программы алгоритма. Алгоритм характеристически (четко) проводит кластеризацию. В нечетких технологиях это важное свойство алгоритма позволяет определять число кластеров, например в задачах синтеза знаний, где по информативной емкости координатного пространства требуется определение числа правил для экспертной базы знаний.

Пример описания. Детально понять алгоритм можно только при его программировании и отладке. Приводимая теория до раздела «Пример программы»

1 Диагональную норму можно рассматривать, например, как способ весовой коррекции отдельных направлений (координат) признаков.

2 В основе нормы Махаланобиса – обратные отношения входных дисперсий, корректирующие случайный разброс объектов кластеризации, точнее их координат.

42

в основном пошагово знакомит с метрическими и пространственными свойствами алгоритма.

На первом шаге горной кластеризации определяют точки, которые могут быть центрами кластеров. На втором шаге для каждой такой точки рассчитывается значение потенциала, показывающего возможность формирования кластера в ее окрестности. Чем гуще расположены объекты в окрестности прототипа кластера, тем выше значение его потенциала. На третьем шаге итерационно выбираются центры кластеров среди точек с максимальными потенциалами. Рассмотрим горный алгоритм кластеризации подробнее.

Н а п е р в о м ш а г е необходимо сформировать потенциальные центры кластеров. Для алгоритма горной кластеризации число потенциальных центров кластеров (Q) должно быть конечным. Такими центрами могут быть как объекты кластеризации (строчки матрицы X), так и особые точки факторного пространства. В последнем случае диапазоны изменения входных признаков разбивают на несколько интервалов. Проведя через точки разбиения прямые, параллельные координатным осям, получаем решеточный гиперкуб. Узлы этой решетки и будут соответствовать центрам потенциальных кластеров. Обозначим через qr – количество значений, которые могут принимать центры кластеров по r-й координате, r = 1, n . Тогда количество возможных кластеров будет

равно: Q = q1q2...qn.

Н а в т о р о м ш а г е алгоритма рассчитывается потенциал центров кластеров по следующей формуле:

P(Z h ) = exp(-αD(Z h , X k )), h = 1,Q,

k =1,M

где Z h = (z1,h , z2,h ,..., zn,h )– потенциальный центр кластера h, h = 1,Q; α – положительная константа; D(Z h , X k ) – расстояние между потенциальным центром кластера (Zh) и объектом кластеризации (Xk). В евклидовом пространстве это расстояние рассчитывается по формуле:

D(Z h , X k ) = Z h X k 2 .

Когда объекты кластеризации заданы двумя признаками (n = 2), графическое изображение распределения потенциала будет представлять собой поверхность, напоминающую горный рельеф. Отсюда и название – горный алгоритм кластеризации.

Н а т р е т ь е м ш а г е алгоритма в качестве центров кластеров выбирают координаты «горных вершин». Центром первого кластера назначают точку с наибольшим потенциалом. Обычно наивысшая вершина окружена несколькими достаточно высокими пиками. Назначение центром следующего кластера точки

43

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

P2 (Z h ) = P1 (Z h ) − P1 (V1 ) exp(−βD(Z h ,V1 )), Z h V1 , h = 1,Q

где P ( ) – потенциал на 1-й итерации; P ( )

– потенциал на 2-й итерации; β

1

 

2

 

 

 

 

 

положительная константа; V1 – центр первого найденного кластера:

V =

agr max(P (Z ), P (Z

2

),..., P (Z

Q

)) .

1

1

1

1

1

 

Z1 ,Z 2 ,...,ZQ

Центр второго кластера определяется по максимальному значению обновленного потенциала:

V1 = agr max(P2 (Z 1), P2 (Z 2 ),..., P2 (ZQ )).

Z h :Z h V1 ,h=1,Q

Затем снова пересчитывается значение потенциалов:

P3 (Z h ) = P2 (Z h ) − P2 (V2 ) exp(−βD(Z h ,V2 )), Z h V1 , h = 1,Q .

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

Пример программы. Версия процедуры, которая из 2-мерного коор-

динатного пространства X формирует все возможные пары центров-

кандидатов. Результат - тоже координатное пространство, если про-

цент (порог от Рmax) малый процент. Если процент высокий - то из полного числа пар остается некоторое подмножество из тех же коор-

динат. Вывод: для координат данной и большей размерности достаточ-

но указать возможные их последовательности и будет выдан резуль-

тат отсортированных по порядку центров.

Начальные условия, включая генерацию координатного пространст-

ва Х:

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

44

Генерируем пространство признаков в 2 координаты

c := 2

i := 0.. c − 1

 

N := 50

k := 0.. N

Value := 10

α := 2

β := 2 - Постоянные параметры экспоненциального веса

Xk, i := rnd(Value − 5)

 

sin(i) + cos (k)

 

 

 

 

 

 

 

 

 

 

Расчет

числа кластеров

в данном

примере производит функция

CentrClaster(). Функция горной кластеризации CentrClaster() полно-

стью описывается в приложении 2. Входные параметры: X − координаты объектов; α, β, − экспоненциальные веса; процент потенциала (в при-

мере 55%) от максимального, который будет учитываться при расчете вершин, если остаются вершины ниже указанного процентного отноше-

ния, то алгоритм останавливается.

Пример вызова функции для исходного пространства Х и результат

расчета координат центров в матрице ХХ (рис. 9):

r:=CentrClaster(X,α,β,55).

Функция CentrClaster возвращает убывающие по потенциалу коор-

динаты центров. Число координат центров кластеризации (собственно число кластеров) определяется как длина массива r: length(r)=3.

Формирование 1-й и 2-й колонки координат

XX

 

:=

(

0 )

(rj)

XX

 

:=

(

1 )

(rj)

j, 0

 

X

j, 1

 

X

 

 

 

 

 

0

 

 

 

 

 

1

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

рыми описаны объекты в матрице Х. Результат в ХХ − это выборка из Х для центров с максимальным потенциалом. Попробуйте, в качестве са-

мостоятельного задания, реализовать функцию CentrClaster(), опре-

деляя кандидаты независимо от X. Для этого нужно будет решить ша-

ги алгоритма, изложенные в нижеследующем задании практической ра-

боты.

45

Рис. 9. Результат кластеризации 2-координатного пространства объектов: получены три центра, пронумерованные в порядке убывания рассчитанного потенциала

Рассмотрим пример интерполяции результата решения горным алгорит-

мом на поверхность средствами Mathcad.

retC := CentrClaster(X, α , β , 65)

r := retC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

j := 0.. last(r)

XX

j, 0

:= (X 0 ) (rj)

XX

j,

1

:= (X 1 ) (rj)

XX

j, 2

:= (r )

 

 

 

 

 

 

 

0

 

 

 

1

 

 

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вход

 

 

 

 

 

 

Результат

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

1

 

 

 

 

0.845

0.308

10.021

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

4.445

 

1.402

 

 

XX =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.512

2.721

8.71

 

 

 

1

 

 

1.55

 

1.212

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.154

0.756

6.967

 

 

 

2

 

 

1.736

 

1.826

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

ret :=

 

4.866

 

0.526

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

2.667

 

0.915

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

0.446

 

1.156

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

4.55

 

2.25

 

 

 

 

 

 

 

 

 

 

 

X =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

3.265

 

1.641

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

0.548

 

1.304

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

2.873

 

0.256

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

1.631

 

0.012

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

7.251·10 -3

 

2.653

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

2.068

 

2.261

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

 

 

0.296

 

3.97

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

 

 

0.442

 

1.302

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

2.374

 

0.042

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

46

Используется функция CentrClaster(), но модифицированная таким об-

разом, что возвращает вместе с координатными парами значение по-

тенциала. Координаты − это первая и вторая колонка матрицы ХХ, а

потенциалы ее третья колонка. Начинаем формировать матрицы поверх-

ностей.

C := retC

 

(

0 )

= 100

 

( 1 )

= 100

 

 

( 2 )

= 10.021

max( X) = 8.628

 

 

 

max C

 

 

max C

 

max C

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

0 )

 

 

 

 

 

 

i =

 

 

 

 

 

 

 

 

 

 

 

 

Nc := last C

 

 

s := 0..

Nc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

Cs , i := 10

 

(

i )

 

 

 

 

 

 

(

 

0 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

round X Cs , i

, 1

 

 

Nx:= last

 

XX

 

 

 

 

 

 

 

 

( 0 )

= 49

 

 

( 1 )

= 86

 

 

 

(

2 )

= 10.021

 

 

 

 

 

 

max C

 

max C

 

 

 

max C

 

 

 

 

 

 

 

(

0 )

 

 

 

 

 

( 1 )

 

 

 

 

 

 

 

 

(

i )

 

ii := 0.. max C

 

 

jj :=

0.. max C

 

 

t := 0.. Nx

XXt , i := 10 round XX

t

, 1

Начальные потенциалы (горный рельеф)

 

Решение (центры кластеров)

Zii, jj := 0

Z :=

 

for k 0.. Nc

 

 

 

 

Zcii, jj := 0

Zc :=

 

for

k 0.. Nx

 

 

 

 

 

 

 

 

 

 

 

ZC k , 0 , C k , 1 ← Ck, 2

 

 

 

 

 

 

 

ZXX k , 0 , XX k , 1 ← XXk, 2

 

 

 

 

return

Z

 

 

 

 

 

 

 

 

 

 

 

 

return

Z

 

Матрица

Z

 

хранит

значения

 

 

первого

прохода расчета

потенциалов

и способна представить координатное пространство в виде «горной местности» (рис. 10). Матрица Zc содержит ненулевые значения по-

тенциалов точек, координаты которых были выбраны в качестве цен-

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

потенциал которых не меньше максимального потенциала P(Z1)=10.021 в

указанных процентах.

47

Рис. 10. Решение по горному алгоритму:

А− потенциалы («горный рельеф») первого прохода;

Б− финальные центры кластеров и их потенциальные уровни

Практическое задание: определение начальных условий и отладка одной итерации горного алгоритма.

Содержание задания: пройти путем программирования и отладки одну итерацию горного алгоритма. Итерация сокращена до 3-х шагов.

Подготовка к 1-му шагу заключается в генерации координатного пространства объектов кластеризации Х и координатного пространства назначенных центров-кандидатов Z. Генерацию 2-мерного X, как и все последующие отдельные приемы, смотреть в примере. Важно понимать, что число объектов и начальное число центров-кандидатов (строки матриц Х и Z) могут совпадать, но чаще отличаются. А вот размерность пространств должна совпадать (колонки матриц Х и Z) всегда! Итак, пусть число центров-кандидатов назначено переменной Nz, а число объектов кластеризации переменной N. Сгенерируйте матрицу Z центров-кандидатов с числом строк меньше или равным X.

Н а ч а л о и т е р а ц и и .

На 1-м ш а г е рассчитаем потенциалы вершин назначенных кандидатов и запишем их в 2-ю колонку PZ:

48

PZ := for s 0.. Nz

 

(

0 )

 

 

 

 

 

 

 

 

 

Z

s

 

 

 

 

 

 

 

c ←

 

 

 

 

 

 

(Z 1 )

s

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

 

T ) k

 

 

 

 

 

 

 

(

 

 

Zs , 2 e− α

 

c−

X

 

 

 

 

 

 

 

 

k = 0

 

 

 

 

 

 

return Z

 

 

 

 

 

 

 

 

Значения PZ можно использовать, чтобы показать начальную горную «ме-

стность» (рис. 10) на графике поверхности.

На 2-м ш а г е сортируем потенциалы в PZ (по второму индексу колонки) от минимума к максимуму. Таким образом, координаты 1-го центра и его максимальный потенциал будут в последней строке матрицы PZ. Вектору Pmax присваиваются координаты максимального потенциала:

PZ := csort (PZ, 2)

Nc := last

( 0 )

Pmax:=

(

T) Nc

Result

 

:= Pmax

Z

 

PZ

i

 

 

 

 

 

 

 

 

где i – номер итерации, начиная с нулевой.

На 3-м ш а г е удаляется последняя строка матрицы PZ с максимальным потенциалом, сокращая число центров-кандидатов.

PZ :=

 

Nc ← last

(

 

0 )

 

 

 

 

 

 

 

 

 

 

PZ

 

 

 

 

 

Z ← submatrix(PZ, 0, Nc − 1, 0, 2)

 

 

Nc ← Nc − 1

 

 

 

 

 

 

Pmax

 

 

 

 

 

 

c ←

 

 

0

 

 

 

 

 

 

Pmax

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

for

i 0.. Nc

 

 

 

 

 

 

 

 

 

 

 

(

0 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z

 

 

 

 

 

 

− β

 

 

 

 

 

 

 

 

 

(

1 )

 

 

Zi, 2 ← Zi, 2 − Pmax2 e

 

 

Z

 

 

 

 

 

 

 

return Z

 

 

 

 

 

 

i

−c

i

Делаем перерасчет потенциальной поверхности с гашением активных вершин в районе найденного центра кластера. Интенсивность гашения экспоненциально зависит от радиуса удаления от центра кластера.

Если определенные требования останова не выполняются, то делаем переход к шагу 2. Иначе – выход.

Пример результата поиска центров после 3-х итераций:

49

 

4.277

− 3

 

 

 

 

8.746× 10

2.169

 

Result =

0.229

1.518

2.07

 

 

 

 

 

 

 

 

 

 

4.146

0.907

1.574

 

Значения координат центров вектора Result это колонки 0 – 1, потенциалы вершин – колонка 2. Произведенная кластеризация по горному алгоритму не является нечеткой, но ее часто используют при синтезе нечетких правил из данных.

Результат практики: это отладка и выполнение заданной итерации. Скопируйте и повторите строки отлаженной итерации шагов 1 – 2 не менее 3-х раз. Убедитесь, что максимальные вершины всех 3-х итераций корректно удаляются, а вектор Result пополняется значениями центров, количество которых должно быть равным числу проделанных итераций.

Контрольные вопросы

1.Какова цель применения горного алгоритма к исходному координатному пространству в задачах интеллектуальных технологий?

2.Какие можно предложить критерии останова алгоритма в отличие от приведенного в примере?

3.Какой параметр алгоритма регулирует (ограничивает) радиус действия вершины как доминирующей при расчете ее потенциала?

50

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]