Temat: Jakiej metody klasteryzacji użyć gdy odległości przyjmują...
Nie spotkałem się dotąd z tak skonstruowaną macierzą odległości, ale nasuwa mi się kilka refleksji, więc spróbuję poimprowizować. Jeśli macierz skonstruowana jest w oparciu o poprawną metrykę, to warto skoncentrować się na zależnościach D(a,b)=0.
Zaczynając od obserwacji a jako zalążka pierwszego klastra, można by włączać do niego wszystkie obserwacje x gdzie D(a,x) = 0, a korzystając z nierówności trójkąta, powtarzać ten zabieg rekurencyjnie, bo skoro D(a,X) = 0 i D(X,b) = 0 to musi zachodzić D(a,b) <= D(a,X) + D(X,b) = 0, czyli D(a,b) = 0, więc i b jest identyczne z a. Gdy nie będzie już żadnej obserwacji do włączenia, wybieramy kolejną nieprzyporządkowaną nigdzie obserwacje, jako zalążek kolejnego klastra. Jeśli nierówność trójkąta jest wszędzie spełniona, algorytm podzieli zbiór na skupienia, w ramach których obserwacje są od siebie nierozróżnialne...
Spodziewam się jednak, że tak dobrze nie będzie - ale włączając obserwację X do klastra możesz też sprawdzać, czy istnieje już jakieś b z bieżącego klastra, dla którego D(b,X) > 0 i wtedy ją pominąć. Co zrobić z takimi obserwacjami później? Jeśli będzie tego relatywnie mało, możesz pomyśleć o włączaniu ich na koniec do powstałych klastrów, korzystając z jakiejś funkcji oceniającej odległość obserwacji od całego skupienia - to będzie o tyle prostsze, że przy jej konstruowaniu nie będziesz już ograniczony do {0,1}. Natomiast jeśli wiele obserwacji będzie przeczyć założeniom o poprawności metryki, to będzie trzeba chyba uruchomić wyobraźnię...