Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Центр помощи > [C++] Кластерный анализ |
Автор: JekaR 6.12.2011, 13:41 |
Разработать программную подсистему прямого кластерного анализа данных |
Автор: VictorTsaregorodtsev 6.12.2011, 15:01 |
Что имеется в виду??? Снизу-вверх (последовательное объединение точек в кластеры) и сверху-вниз (последовательное деление облака точек на кластеры) - это я понимаю. Фиксированное стартовое (и, в итоге, равное стартовому конечное) число кластеров - это я понимаю. А слово "прямой" - не понимаю. PS. Если окажется что-то из уже готового у меня - могу сделать за денежку ;) Уже знакомое можно воспроизвести даже при больной голове, а разбираться с чем-то новым - нужна вменяемая голова (а у меня сейчас достаточно гораздо более интересных задач, с которыми надо разбираться на свежую голову) |
Автор: JekaR 6.12.2011, 15:08 | ||||||
Снизу-вверх (последовательное объединение точек в кластеры)Прямой как мне рассказали это и есть снизу-вверх Добавлено @ 15:10
мне хотя бы подобное решение этой задачи |
Автор: 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 | ||
Спасибо за помощь уже все сделал и сдал))) |