Jaka metoda interpolacji wielowymiarowej jest najlepsza do praktycznego zastosowania?

W artykule Petera Alfreda na temat wielowariantowej interpolacji rozproszonych danych wspomniał, że z różnych schematów tylko kilka jest naprawdę popularnych wśród praktyków. Wymienił m.in. metodę Sheparda i Multiquadrics Hardy ' ego. Ale ten artykuł ma już prawie 20 lat, a co naprawdę ciekawe, to jakie metody są obecnie szeroko stosowane.

Jeśli masz jakieś doświadczenie w stosowaniu niektórych schematów interpolacji przestrzennej, opowiedz o to.

UPD: aby to pytanie było bardziej konkurencyjne, powtórzyłem je. "Jakich metod interpolacji wielowymiarowej kiedykolwiek używałeś?"

Author: akalenuk, 2009-02-26

5 answers

Używałem Kriging w przeszłości, z rozproszonymi danymi, które przyszły z szacunkami dokładności dla każdej próbki. Wydawała się potężną techniką, która zasługuje na szersze zastosowanie poza światem geostatystycznym.

 6
Author: timday,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-26 20:20:53

(to będzie długo, chyba że zabraknie mi pary.)

Najpierw kilka uwag na temat nie rozproszonych danych. (Zobacz odpowiedź, która odwołuje się do littleCMS)

Istnieją dwa rodzaje interpolacji kolorów, które są wspólne. Kilka lat temu interpolacja trójliniowa (tensor product linear interpolation) była powszechnym podejściem do interpolacji tabeli kolorów. Interpolacja trójliniowa może być rzeczywiście zaimplementowana jako sekwencyjny zbiór interpolacji jednowymiarowych, najpierw na jednej osi, potem wzdłuż drugiej osi itp.

Wiele lat temu zdaliśmy sobie sprawę, że interpolacja trójliniowa wprowadza artefakty w obrazowaniu barwnym, gdy są stosowane do pewnych typów przekształceń. Problemy są widoczne w neutralnych. Rozwiązaniem jest przejście do prostego interpolantu, w 3-d, poprzez rozcięcie sześcianu na 6 czworościanów. W n wymiarach kostka jednostkowa zostanie rozcięta na czynnikowe (N) proste. Istnieją inne rozcięcia sześcianu, ale ten szczególny styl zapewnia, że główna przekątna jest zawsze wspólna krawędź dla wszystkich prostych. To z kolei przywraca dobre zachowanie dla neutralnych, gdy zostanie zastosowane do niektórych tabel wyszukiwania kolorów.

Teraz przejdę do kwestii prawdziwej interpolacji danych rozproszonych.

Inni wspominali o różnych schematach. Kriging, multiquadrics, metody oparte na odległości to kilka. (Kiedy wykonywaĺ 'em jakieĹ" prace w przeszĹ ' oĹ "ci z tymi schematami, faktycznie wolaĺ' em odwrotne metody multiquadric.) Wszystko to są tak naprawdę tylko odmiany radialnej podstawowe metody funkcyjne, wspólny schemat. Metody RBF mają swoje dobre i złe punkty. Zazwyczaj generują one gładką interpolację, to oczywiście zależy od wybranej konkretnej funkcji bazowej, a także od tego, czy zdecydujesz się ograniczyć wsparcie. Metody RBF pozwalają również na ekstrapolację, przynajmniej na tyle, na ile wsparcie promieniowych elementów bazowych rozszerzy się. Jeśli elementy podstawy mogą być nieskończone w zakresie, to nie będzie miało zastosowania żadne wyraźne ograniczenie dotyczące ekstrapolacji. (Ekstrapolacja w ogóle jest złą rzeczą do zrobienia.) Jednym z problemów metod RBF jest to, że wymagają one rozwiązania dużych układów równań liniowych, a te układy równań są często gęstymi macierzami. Oznacza to, że rozmiar problemu, pod względem liczby punktów danych, z którymi można sobie poradzić, jest ograniczony przez algebrę liniową. Jeśli zamiast tego ograniczysz obsługę poprzez obcinanie elementów bazowych, macierze mogą stać się rzadkie. To poprawi algebrę liniową, jeśli użyjesz macierzy rzadkiej pakiet dla rozwiązania. Jednocześnie odległość wsparcia staje się nieliniowym parametrem, który musisz kontrolować. Również metody takie jak multiquadrics i inverse multiquadric mogą mieć drugorzędny parametr nieliniowy, który kontroluje kształt elementów bazowych. Kriging ma podobne problemy I chciałbym połączyć wszystkie te metody.

Do tych problemów, wszystkie te metody, które zaklasyfikowałem jako warianty RBF są często ograniczone w liczbie punktów, które będą wygodnie uchwyt. W zależności od sposobu radzenia sobie z rzeczami i ilości dostępnej pamięci, limit ten często może wynosić kilka tysięcy punktów.

Innym problemem z ogólną klasą metod RBF jest to, co nazywam intrapolacją. Jest to neologizm, który stworzyłem wiele lat temu, aby opisać interpolację w stosunkowo dużej dziurze w danych. W rzeczywistości często mogą występować problemy nawet podczas interpolacji w mniejszych otworach danych. Te metody, ponieważ są one gładkie w pewnym stopniu mogą wprowadzać niepożądane ekstremy (Duże szczyty lub doliny) do powierzchni interpolowanej. Jest to częsty problem nawet z interpolantami 1-d, często postrzeganymi jako artefakty dzwonienia z sześciennymi interpolantami lub wielomianami, a na pewno widzianymi z interpolantami szeregów Fouriera. Problemem w wyższych wymiarach jest nawet uznanie, że tak się stało, ponieważ rysowanie powierzchni w więcej niż trzech wymiarach wydaje się być trudne.

Jeśli masz więcej punktów niż ten limit, lub jeśli te artefakty dzwonienia są niedopuszczalne, inne metody są często lepszym wyborem. Jeśli chcesz użyć interpolantu liniowego, najprostszym rozwiązaniem w wyższych wymiarach jest rozpoczęcie od teselacji danych. Tak więc w 3 wymiarach, tessellate danych (typowo delaunay tessellation) do czworościanu. Jest to dość wydajne i istnieje wiele narzędzi do tego celu. Jest to prosty problem interpolacji dowolnego pojedynczego punktu. / Align = "left" / w którym punkcie znajduje się simplex, Oblicz współrzędne barycentryczne jako masy interpolacyjne w obrębie simplex i stwórz odpowiednią kombinację liniową wartości funkcji na każdym wierzchołku znalezionego simplex. To wszystko jest niezwykle szybkie i wydajne.

Minusem tych metod opartych na teselacji jest to, że zazwyczaj ograniczają cię do wypukłego kadłuba punktów danych, a co złe, jeśli Twoje dane leżą w domenie nie-wypukłej, to interpolant może robić dziwne rzeczy w niektórych regionach Twojej domeny. Kolejny problem ze schematem, o którym wspomniałem powyżej, jest interpolant będzie tylko fragmentarycznie liniowy, ale gdy przejdziesz do wyższych wymiarów, rzeczy stają się nieprzyjemne szybko. Inne metody można znaleźć dla płynnej interpolacji opartej na teselacji, ale będą one wymagały większego wysiłku i dlatego są znacznie mniej powszechne.

Podstawowe kompromisy powinny być tutaj oczywiste. Jeśli potrzebujesz gładkiej interpolacji i masz tylko kilka punktów, często wybierane są metody RBF. Oni są proste, łatwe w użyciu itp. Wybrana metoda jest często tylko kwestią wygody, a nawet przyzwyczajenia. Jeśli używałem wcześniej jednego narzędzia i byłem szczęśliwy, prawdopodobnie będę z niego zadowolony ponownie. Ponieważ pytanie brzmiało, która metoda jest "najlepsza do praktycznego zastosowania", zaznaczę, że best jest bardzo subiektywnym słowem, gdy jest stosowane poza kontekstem. Jakie są Twoje cele w problemie interpolacji? Jakie umiejętności posiadasz? Jakiego zestawu narzędzi umiesz używać? W jakim środowisku będziesz pracować? Wszystkie czynniki te będą miały wpływ na wybór najlepszej metody.

Jeśli masz wiele punktów danych, a szybkość jest najważniejsza, ale ostateczna gładkość nie jest tak ważna, to generalnie będziesz szukał prostej interpolacji. Oczywiście, jeśli masz wystarczającą ilość punktów, to fragmentaryczna liniowa natura bestii ma mniejsze znaczenie. Fragmentaryczna interpolacja liniowa ma tę wielką zaletę, że w niektórych przypadkach nigdy nie może wygenerować ekstremów na Twojej powierzchni, które nie istniały w data. W przypadku niektórych problemów, na przykład charakterystyki kolorów, ma to ogromne znaczenie.

Inny problem to hałas. Chociaż obecność szumu jest często sygnałem, że wygładzanie jest konieczne, nie wszystkie takie powierzchnie mają wygładzanie. Każdy operator wygładzania czasami wygładza również ważne cechy danych. Dzieje się tak, ponieważ operator wygładzania możemy myśleć o filtrze dolnoprzepustowym. Zachowanie wysokiej częstotliwości jest często szum, ale może być również po prostu ostry palec lub ramię na mojej powierzchni, którego nie mogę stracić. Jeśli jest to problem, możesz być skłonny użyć interpolantu nawet w obecności czasami znacznego hałasu. W takim razie sugeruję, że najprostsza, najniższa interpolacja jest najlepsza. Gładka, bardziej globalna interpolacja będzie również miała tendencję do wzmacniania wszelkich szumów w danych, więc jeśli szukasz najniższej interpolacji wariancji w obecności szumu, będzie to na ogół interpolacja liniowa.

Oczywiście, istnieje wiele odmian cienkich splotów płytowych, interpolacyjnych lub nie. Gdy przekroczysz jeden wymiar, Twoje opcje również się rozszerzają, przynajmniej jeśli chcesz wykonać pracę.

Skończę tutaj, zanim zamieni się w książkę.

 16
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-08 13:00:22

(rok później) Zobacz inverse-distance-weighted-idw-interpolation-with-python , kombinacja odwrotnej wagi odległości i scipy.przestrzenne.KDTree.

 4
Author: denis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:53:16

Jedyną aplikacją jaką widziałem jest ta w LittleCMS code (open source color management engine).

Kiedy pierwszy raz to sprawdzałem, po prostu wykonałem liniową interpolację w jednej osi, a następnie interpolację między tym wynikiem a punktem w drugiej osi. właśnie go odnowiłem i wydaje się być bardziej wyrafinowany. nie można porównać do artykułu, o którym wspominasz, ale może chcesz go sprawdzić, jest w pliku cmslut.c.

 2
Author: Javier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-26 20:15:43

Pracowałem z wygładzaniem rozproszonych danych 3D do obróbki powierzchni LINK . Wymagało to wielu punktów i chciałem bardzo gładką powierzchnię, więc proces najpierw znalazł najlepiej dopasowaną powierzchnię drugiego rzędu do danych, a następnie fazę relaksacji, w której punkty zostały zamontowane na powierzchni. Nie jest to powierzchnia interpolacyjna Do Oryginalnych Danych, ale był to sposób na zmniejszenie kolejności interpolacji w zoptymalizowany sposób.

Metoda polegająca na operowaniu fragmentarycznie regiony, które dobrze nadawały się do aproksymacji drugiego rzędu.

Inną ciekawą cechą metody jest to, że punkty były wierzchołkami trójkątów i Łączność jest zachowana podczas wygładzania.

 1
Author: jeffD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-02 05:36:55