Wizualizacja+Triangulacyjna+Old

Stara wersja strony o wizualizacji triangulacyjnej. Przeniesiona z mojej strony głównej.

 * Wizualizacja triangulacyjna**, algorytm rzutowania punktów z przestrzeni n > 2 wymiarowej na przestrzeń dwuwymiarową przy zachowaniu odległości między wybranymi trójkami punktów:

[|Schemat algorytmu wizualizacji triangulacyjnej v.0.0.1]


 * Implementacja algorytmu:**

Popracuję jeszcze nad zbadaniem Intemi, może dostanę źródła(sic!) od autorów, ale póki co zamierzam zaimplementować ten algorytm w Javie, tak na próbę, żeby się przekonać jak szybko dla jak rozbudowanych danych będzie on pracował.


 * Moje uwagi co do Intemi:**

Chciałbym wyrazić moje (krytyczne) uwagi co do projektu jakim jest Intemi. Nie podważając jego struktury (nie bardzo mam na ten temat wiedzę) i funkcjonalności oraz złożoności, uważam, że brak podstawowej dokumentacji to jest coś strasznego. Uważam, że w kodzie należy tworzyć komentarze i jest to minimum. Za 3-5 lat, kiedy pierwotni autorzy być może zrezygnują (nie przesądzam) z pracy nad nim, nikt nie będzie już w stanie zrozumieć o co chodzi. Tak jak ja w tej chwili.

=
===
 * Od Profesora Ducha:**

Sporo chęci ale start powolny ... Prace do przeczytania są w FTP.

Do wizualizacji sporo oglądalismy na wykładzie i [|mamy spis tutaj].

Warto sprawdzić pakiet [|Manifold learning], który będzie przydatny do wizualizacji, oraz strony [|Distance Metric Learning].

Wizualizacja triangulacyjna:

Chodzi o zachowanie lokalnych odleglosci metod triangulacji. Sa rozne warianty. Zawsze dla 3 obiektow w N-wymiarach mozna zachowac dokladnie ich odleglosci w 2D, wiec zbior punktow S w 2D robimy tak:

0. Inicjalizacja S=zbior pusty, T=cale dane w N-wymiarach 1. Obliczmy odleglosci Dij=D(xi,xj) w zbiorze T 2. Znajdujemy min Dij>0, i bierzemy dwa najblizsze siebie punkty (x1,x2) i przesuwamy je z T do S. 3. Szukamy x3 dla ktorego D13+D23 jest najmniejsze, przesuwamy x3 z T do S; 4. Trzymamy uporzadkowana liste odleglosci miedzy punktami w S. 5. Kolejno zaczynajac od najmniejszej odleglosci Dij w S szukamy punktu w T+S ktory jest najblizszy (xi,xj); jesli jest taki w S to bierzemy nastepna pare, a ta wylaczamy z przeszukiwania bo najmniejszy trojkat juz jest w S 6. Jesli mamy pare punktow x1, x2 to dodajemy do nich x3 ktore jest im najblizsze po tej stronie odcinka (x1,x2) po ktorej odleglosci do pozostalych najblizszych wezlow sa najmniejsze.

Taka triangulacja pozwoli na jakiejs hiperpowierzchni w wysokowymiarowej p-ni rozciagnac siatke i ja wyprostowac, jesli ta pow. jest zwinieta - tak jak np. w LLE jest Swiss Roll, [|http://www.cs.toronto.edu/~roweis/lle/swissroll.html] i innych zbiorach uzytych z LLE, twarzach itp, ktore tworza takie lokalne rozmaitosci. Troche prac jest na ten temat ale jakos tego najprostszego rozwiazania nie widze.

Druga metoda to najpierw zrobic dendrogram i triangulacje hierarchiczna, zaczynajac od 3 centrow klastrow piwerwszy trojkat, potem do kazdego wezla dodac kolejne dwa mu najblizsze (lub mu i sobie najblizsze), az dojdziemy do pojedynczych punktow.

Mozna tu wymyslec kilka wariantow np. zaleznie od rodzaju dendrogramu.