Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Практическая работа №5 по курсу «Интеллектуальные системы»

Алгоритмы кластеризации

[ Задание ]

Реализовать на практике (в виде графической программы) один из известных алгоритмов кластеризации:

·  Иерархические алгоритмы (*)

·  Минимальное покрывающее дерево

·  Алгоритм k-средних (*)

·  Метод ближайшего соседа

·  Алгоритмы нечеткой кластеризации

·  Применение нейронных сетей

·  Генетические алгоритмы

·  Метод закалки

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

В конце документа приведены требования к разрабатываемой программе.

[ Описание алгоритмов ]

Иерархический метод «Single-link»

На каждом шаге объединяет два кластера с наименьшим расстоянием между двумя наиболее близкими представителями.

Подробнее:

1. Объединяем 2 точки с минимальным расстоянием друг-от-друга в кластер.

2. Вычисляем центр масс полученного кластера. (*)

3. Заменяем кластер точкой с координатами в его центре масс.

(виртуально, не удаляя старых точек с изображения кластера)

4. Повторяем действия с шага 1, пока есть хоть одна точка, не включенная в кластер, либо пока не будет получено требуемое кол-во кластеров (в зависимости от условий задачи).

 

(*) Центр масс – условный центр геометрической фигуры (многоугольника), образованной конечным количеством точек; в простейшем виде может быть вычислен так:

,

где (Xc, Yc,) – координаты центра масс,

(xi, yi,) – координаты i-й точки, входящей в состав кластера

Так, для кластера из двух точек, центр масс будет лежать в середине отрезка, объединяющего эти точки.

Примечание: более подробное описание представленных алгоритмов можно найти в Интернете и/или лекционных материалах.

Пример соотв. кластеризации:

Порядок объединения кластеров:

Алгоритм «К средних»

Центры кластеров задаются заранее: далее происходит привязывание «свободных» точек к заданным кластерам.

1.  Следует случайно выбрать k точек, являющихся начальными «центрами масс» кластеров (любые k из n объектов, или вообще k случайных точек).

2.  Отнести каждый объект к кластеру с ближайшим «центром масс».

3.  Пересчитать «центры масс» кластеров согласно текущему членству.

4.  Если критерий остановки (*) алгоритма не удовлетворен, вернуться к шагу 2.

В качестве критерия остановки обычно выбирают один из двух:

·  Отсутствие перехода объектов из кластера в кластер на шаге 2;

·  Минимальное изменение среднеквадратической ошибки.

Алгоритм чувствителен к начальному выбору «центров масс».

[ Требования к программе и отчетности ]

1.  Данные (координаты точек) должны вводиться в программу в удобном виде (например, кликами мышкой), либо генерироваться автоматически случайным образом. Обязательными задаваемыми параметрами являются 2 числа: N – исходное количество точек, K – требуемое конечное количество кластеров, образованных заданными точками.

2.  Следует поэтапно, графически отобразить последовательность шагов кластеризации, выделяя вновь образуемые кластера границами (кругами/прямыми линиями – см. рис. выше), либо раскрашивая точки, образующие кластера, в различные цвета (*)

3.  Язык/среда разработки программы произвольны (допускается консольный вариант, с применением встроенных графических библиотек). Основное требование – результаты должны быть представлены на экране в графическом виде.

4.  Требуется написать небольшой отчет (на 1-2 страницы), по работе с программой, включающий: описание алгоритма вычислений, формат ввода-вывода данных, примеры работы программы (со скриншотами).

5.  Задание можно выполнять индивидуально, либо в группах по 2-3 человека. Каждый участник группы должен быть готов объяснить алгоритм вычислений и пояснить работу произвольного фрагмента программы.

(*) Алгоритм раскраски: изначально все точки должны быть окрашены в один цвет; Далее первая пара точек образует кластер: они перекрашиваются в один цвет (который м. б. задан случайно); далее все точки, присоединяемы к вновь образованному кластеру, окрашиваются в такой же цвет, что и кластер. Т. о., локальные скопления точек будут окрашены в разные цвета.