Консультация № 160026
09.02.2009, 17:34
0.00 руб.
0 0 0
помогите реализовать такой алгоритм кластеризации k-середных
для матрицы на С# или С++Builder

алгоритм представляет собой итерационную процедуру, в которой выполняються следующие шаги.
1.Выбирается число кластеров k
Из исходного множества данных случайным образом выбираются k записей,которые будут служить начальными центрами кластером
2.ля каждой записи исходной выборки определяется ближайший к ней центр кластера.
При етом записи, "притянутые"определенным центром образуют начальные кластеры
3.Вычисляются центроиды - центры тяжести кластеров. Каждый центроид - это вектор, элементы которого представлят собой средние значения признаков, вычисленные по всем записям кластера.
4.Затем центр кластера смещается в его центроид.
затем 3-й и 4-й шаги итеративно повторяются. Очевидно,что на каждой итерации происходит изменение границ кластеров и смещение их
центров.В результате минимизируется расстояние между элементами внутри кластеров. Остановка алгоритма производится тогда, когда
границы кластеров и расположения центроидов не перестанут изменятся отитерации к итерации, т.е.на каждой итерации в каждом кластере будет
оставаться один и тот же набор записей.

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

Обсуждение

Форма ответа