Ако трябваше да внедря алгоритъм за йерархично клъстериране, да речем в C/C++ или Java - предвид функциите за изчисляване на разстояние между& в клъстери -
1. какъв би бил моят избор (заедно с други опции) за прилагане на структурите от данни за съхраняване на резултатите от изчислените клъстери във всеки „преминаване“ от показателя за близост, който е дефиниран като n^2 по-долу.
Corresponding Proximity matrix p1 p2 p3 p4 .... and hence n*n p1 d11 d12 d13 d14 p2 ... p3... p4 ...
2. Дали изборът на структури от данни ще се различава, ако използвам изграждането отгоре надолу вместо отдолу нагоре на съответните дендограми?
Пример за дендограма отдолу нагоре (източник, Wiki)
3. Тъй като проблемът с изчисляването на клъстерите и техния центроид е компютърно интензивен (Алчен алгоритъм?) - това ще стане ли по-добро с избора на структури от данни - какви са абстрактни избори, за които можете да се сетите?
4. Има ли наистина такова нещо като разредена матрица [пост, след като изчисли близостта на 2 точки, които след това нарастват, за да асимилират повече съседни точки, ще има по-малко точки , ако трябваше да съхраним нашите „нови“ разстояния в нова матрица] в този контекст? Ще се свие/нарасне ли структурата на данните спрямо тази нужда?
5. Може ли тази матрица да съществува в паметта или части от нейния клъстер - Ако не, какво трябва да заредим отново в паметта, преди да изчислим всеки следващ клъстер (агломеративен групиране или по друг начин)
+1, ако се придържате към концептуален (и надявам се интуитивен) отговор/или ме пренасочете в тази посока
PPS: Нямам нужда от функция, която да ми помогне да внедря това - просто искам да разбера това от управление на паметта и концептуална гледна точка спрямо големи набори от данни. Имам много малко познания по този въпрос, така че игнорирайте, ако това звучи твърде примитивно.