Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Истомин А.В. Анализ_данных.doc
Скачиваний:
3
Добавлен:
08.12.2018
Размер:
307.71 Кб
Скачать

6.1.2. Дивизимные алгоритмы

Этот класс алгоритмов кластер-анализа опишем на примере «Быстрого дивизимного комбинационного алгоритма», предложенного Chaudhuri (Мандель, 1988). Проведённые в ИНГГ эксперименты показали его высокую эффективность при решении задачи кластеризации разрезов по толщинам составляющих их горизонтов на основе информации, содержащейся в сетках толщин. Обработка информации по средней юре юго-востока ЗСП показала, что он быстро и «разумно» кластеризует огромные массивы данных, представленных сеточными моделями. Другими алгоритмами кластеризовать эти массивы, состоящие, порой, из миллиона с лишним объектов, охарактеризованных более чем 10 признаками, часто невозможно либо крайне затруднительно. Алгоритм Chaudhuri (Чаудури) в программном продукте “Statistica for Windows” не представлен.

Этот алгоритм для краткости будем называть также алгоритмом гиперкубов. Приведём его краткое описание.

Гиперкуб, в котором содержатся все точки (определяемый размахами вариации признаков), разбивается на первом шаге по каждой оси перпендикулярной ей плоскостью на 2n «кубика», где n –число признаков. На j-м шаге каждый из этих кубиков также разбивается, т. е. получается 2nj гиперкуба. Если в полученном кубе есть хоть один объект, он считается заполненным, если нет – пустым. Кластером здесь называется максимально большая связная область, в которой любые два объекта соединены непустыми клетками (т.е. компонента связности графа, вершинами которого являются объекты, и две вершины в котором соединены ребром если и только если они либо находятся в одной клетке либо вмещающие их клетки имеют общую границу, пусть даже состоящую из одной точки).

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

6.2. Алгоритмы, порождающие разбиения

Среди алгоритмов, производящих кластеризации типа разбиений, положительно зарекомендовавших себя при обработке естественнонаучных данных, в литературе отмечаются итеративные методы. Приведенное ниже описание этих методов дано в соответствии с работами (Мандель, 1988, Факторный, дискриминантный и кластерный анализ, 1989).

Большинство итеративных методов группировки работает следующим образом.

1. Начать с исходного разбиения данных на некоторое заданное число кластеров; вычислить центры тяжести этих кластеров.

2. Поместить каждую точку данных в кластер с ближайшим центром тяжести.

3. Вычислить новые центры тяжести кластеров; кластеры не заменяются на новые до тех пор, пока не будут просмотрены полностью все данные.

4. Шаги 2 и 3 повторяются до тех пор, пока не перестанут меняться кластеры.

В отличие от иерархических агломеративных методов, которые требуют вычисления и хранения матрицы сходств либо расстояний между объектами размерностью mm, где m – число объектов, итеративные методы работают непосредственно с первичными данными. Поэтому с их помощью возможно обрабатывать большие массивы данных. Эти методы порождают кластеры одного ранга, которые не являются вложенными, и поэтому не могут быть частью иерархии. Большинство итеративных методов не допускает перекрытия кластеров.

Несмотря на свои привлекательные черты, итеративные методы группировки имеют две существенные особенности, если не сказать недостатка: а) необходимость задавать число кластеров; б) зависимость результата кластеризации от начального разбиения.

Есть два основных способа начать итеративный процесс: определить начальные точки или подобрать подходящее начальное разбиение. Начальные точки – это центры тяжести кластеров на первой итерации. Когда используются начальные точки, то при первом просмотре точки данных приписываются к ближайшим центрам тяжести кластеров. Задание начального разбиения требует детального распределения данных по кластерам. В этой процедуре центр тяжести каждого кластера определяется как многомерное среднее объектов кластера. Начальные разбиения могут выбираться случайным образом или же задаваться каким-либо образом самим пользователем (например, пользователь может взять в качестве исходного разбиения решение, совпадающее с одним из уровней иерархической кластеризации). Вряд ли стоит подробно обсуждать ситуацию, когда начальное разбиение задаётся случайным путём. Более предпочтительно задавать центры тяжести ожидаемых кластеров из числа наиболее «типичных» объектов тех классов, которые хотелось бы выделить.