Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Кластерный анализ


Автор: JekaR 6.12.2011, 13:41
Разработать программную подсистему прямого кластерного анализа данных

Автор: VictorTsaregorodtsev 6.12.2011, 15:01
Цитата(JekaR @  6.12.2011,  13:41 Найти цитируемый пост)
прямого 

Что имеется в виду???
Снизу-вверх (последовательное объединение точек в кластеры) и сверху-вниз (последовательное деление облака точек на кластеры) - это я понимаю. Фиксированное стартовое (и, в итоге, равное стартовому конечное) число кластеров - это я понимаю. А слово "прямой" - не понимаю.

PS. Если окажется что-то из уже готового у меня - могу сделать за денежку ;) Уже знакомое можно воспроизвести даже при больной голове, а разбираться с чем-то новым - нужна вменяемая голова (а у меня сейчас достаточно гораздо более интересных задач, с которыми надо разбираться на свежую голову)

Автор: JekaR 6.12.2011, 15:08
Цитата(VictorTsaregorodtsev @ 6.12.2011,  15:01)
Цитата(JekaR @  6.12.2011,  13:41 Найти цитируемый пост)
прямого 

Что имеется в виду???
Снизу-вверх (последовательное объединение точек в кластеры) и сверху-вниз (последовательное деление облака точек на кластеры) - это я понимаю. Фиксированное стартовое (и, в итоге, равное стартовому конечное) число кластеров - это я понимаю. А слово "прямой" - не понимаю.

PS. Если окажется что-то из уже готового у меня - могу сделать за денежку ;) Уже знакомое можно воспроизвести даже при больной голове, а разбираться с чем-то новым - нужна вменяемая голова (а у меня сейчас достаточно гораздо более интересных задач, с которыми надо разбираться на свежую голову)

Снизу-вверх (последовательное объединение точек в кластеры)Прямой как мне рассказали это и есть снизу-вверх

Добавлено @ 15:10
Цитата(JekaR @ 6.12.2011,  15:08)
Цитата(VictorTsaregorodtsev @ 6.12.2011,  15:01)
Цитата(JekaR @  6.12.2011,  13:41 Найти цитируемый пост)
прямого 

Что имеется в виду???
Снизу-вверх (последовательное объединение точек в кластеры) и сверху-вниз (последовательное деление облака точек на кластеры) - это я понимаю. Фиксированное стартовое (и, в итоге, равное стартовому конечное) число кластеров - это я понимаю. А слово "прямой" - не понимаю.

PS. Если окажется что-то из уже готового у меня - могу сделать за денежку ;) Уже знакомое можно воспроизвести даже при больной голове, а разбираться с чем-то новым - нужна вменяемая голова (а у меня сейчас достаточно гораздо более интересных задач, с которыми надо разбираться на свежую голову)

Снизу-вверх (последовательное объединение точек в кластеры)

мне хотя бы подобное решение этой задачи 

Автор: VictorTsaregorodtsev 6.12.2011, 21:22
1) Строите матрицу попарных расстояний между точками.

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

3) вернее, 1.5) Вычтите из общего числа точек нужное число кластеров - и получите верхний предел для цикла числа объединений в п.2. 

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


ЗЫ. В общем, найдите лучше нормальный учебник - там с помощью картинок всё нагряднее описывается. А мне лень еще и картинки искать-выдирать-вставлять сюда.

Автор: JekaR 6.12.2011, 22:25
спасибо но мне все равно не понятно((((мне сказали что надо делать через радиусы как то и вообще хотелось бы наглядно увидеть как это будет просто в инете сколько не копался толкового ничего по этой теме не нашел)))вот единственное близкое http://www.algorithmist.ru/2011/05/clustering-with-example-in-r.html только надо сделать в C++ а не в R

Автор: VictorTsaregorodtsev 8.12.2011, 16:58
Так нефиг читать интернет. Надо читать нормальные бумажные учебники (желательно - ещё советских времён, например, Дуду и Харта, или Манделя).

Автор: JekaR 9.12.2011, 16:33
Цитата(VictorTsaregorodtsev @ 8.12.2011,  16:58)
Так нефиг читать интернет. Надо читать нормальные бумажные учебники (желательно - ещё советских времён, например, Дуду и Харта, или Манделя).

Спасибо за помощь уже все сделал и сдал)))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)