Агломеративный алгоритм кластеризации
От: Дюша Россия http://www.danfoss.com/russia
Дата: 12.01.08 15:35
Оценка:
Добрый день,

Необходимо реализовать агломеративный алгоритм кластеризации. Столкнулся с проблемой производительности.
Задача: имеется набор данных, состоящий из 45222 записей. В каждой — 14 аттрибутов. Требуется находить две ближайших записи (т.е. чтобы расстояние между ними, измеряемое некой Distance Function, было минимально).

Пытался, чтобы сэкономить вычисления, сохранять матрицу (а это [45222*45222-45222]/2 ~ 10^9) в БД, получается крайне медленно. След. попыткой было записывать данные в переменную (StringBuilder.AppendLine) и затем, на каждой итерации сливать ее содержимое в текстовый фаил. Получилось гораздо быстрее, но все равно не приемлемо — порядка 22 часов лишь на то, чтобы заполнить изначальню матрицу, т.е. внести 10^9 записей.

Какой подход лучше применить к данной задаче?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.