Algorytm Heatmap do wizualizacji różnorodności punktów


18

Czy ktoś może zasugerować algorytm do wygenerowania mapy cieplnej do wizualizacji różnorodności punktów? Przykładem zastosowania byłoby mapowanie obszarów o dużej różnorodności gatunków. W przypadku niektórych gatunków każda roślina została zmapowana, co daje dużą liczbę punktów, ale ma bardzo małe znaczenie pod względem różnorodności obszaru. Inne obszary rzeczywiście mają dużą różnorodność.

Rozważ następujące dane wejściowe:

x    y      cat
0.8  8.1    B
1.1  8.9    A
1.6  7.7    C
2.2  8.2    D
7.5  0.9    A
7.5  1.2    A
8.1  1.5    A
8.7  0.3    A
1.9  2.1    B
4.5  7.0    C
3.8  4.0    D
6.6  4.8    A
6.2  2.4    B
2.2  9.1    B
1.7  4.7    C
7.5  7.3    D
9.2  1.2    A

i wynikowa mapa:

wykres siatki

W lewym górnym kwadrancie znajduje się bardzo zróżnicowana łatka, podczas gdy w prawym dolnym kwadrancie znajduje się obszar o wysokiej koncentracji punktowej, ale niskiej różnorodności. Dwa sposoby wizualizacji różnorodności mogą polegać na użyciu tradycyjnej mapy cieplnej lub policzeniu liczby kategorii reprezentowanych w każdym wielokącie. Jak pokazują poniższe zdjęcia, podejścia te mają ograniczone zastosowanie, ponieważ mapa cieplna pokazuje największą intensywność w prawym dolnym rogu, podczas gdy podejście grupowania wyglądałoby dokładnie tak samo, gdyby istniała tylko jedna kategoria (można to rozwiązać, zwiększając rozmiar pojemniki wielokątne, ale wtedy wynik staje się niepotrzebnie ziarnisty).

Mapa ciepła wprowadź opis zdjęcia tutaj

Jednym podejściem, o którym pomyślałem, byłoby zalanie tradycyjnego algorytmu mapy cieplnej liczbą punktów różnych kategorii w określonym promieniu, a następnie wykorzystanie tej liczby jako wagi punktu podczas generowania mapy cieplnej. Myślę jednak, że może to być podatne na niepożądane artefakty, takie jak wzajemne wzmocnienie prowadzące do bardzo ostrych rezultatów. Również ściśle odwzorowane punkty tego samego typu nadal będą się wyświetlać jako wysokie stężenia, ale nie w tym samym stopniu.

Innym podejściem (prawdopodobnie lepszym, ale droższym obliczeniowo) byłoby:

  1. Obliczyć całkowitą liczbę kategorii w zbiorze danych
  2. Dla każdego piksela obrazu wyjściowego:
    • Dla każdej kategorii:
      • obliczyć odległość do najbliższego reprezentatywnego punktu (r) [prawdopodobnie ograniczając się o pewien promień, powyżej którego wpływ jest znikomy]
      • dodaj współczynnik proporcjonalny do 1 / r 2

Czy istnieją już algorytmy, których nie jestem świadomy, lub inne sposoby wizualizacji różnorodności?

Edytować

Zgodnie z sugestią Tomislava Muica obliczyłem mapy cieplne dla każdej kategorii i znormalizowałem je za pomocą następującej formuły (kalkulator rastrowy QGIS):

((heatmap_A@1 >= 1) + (heatmap_A@1 < 1) * heatmap_A@1) +
((heatmap_B@1 >= 1) + (heatmap_B@1 < 1) * heatmap_B@1) +
((heatmap_C@1 >= 1) + (heatmap_C@1 < 1) * heatmap_C@1) +
((heatmap_D@1 >= 1) + (heatmap_D@1 < 1) * heatmap_D@1)

z następującym wynikiem (komentarze pod jego odpowiedzią): znormalizowana suma


1
Twoje drugie podejście wygląda OK, jest to głównie problem statystyczny, więc zacznę szukać odpowiednich procedur R w CRAN . Eksperymentowałbym jednak z różnymi rozmiarami siatki i szukał „oficjalnych” miar różnorodności biologicznej, aby uniknąć ponownego wynalezienia koła.
Deer Hunter

Odpowiedzi:


4

Spróbuj utworzyć mapę cieplną dla każdej osobnej kategorii.

Następnie zsumuj mapy cieplne i znormalizuj je przy użyciu liczby kategorii.

Warto to zbadać.


Dodałem wizualizację do mojego pytania w oparciu o tę sugestię, a wynik wygląda dobrze! Wadą jest to, że jeśli masz do czynienia z setkami lub tysiącami kategorii, przechowywanie wszystkich tych rastrów będzie stanowić problem.
rudivonstaden

Pomyśl o tym, nie byłoby problemu, gdybyś dodawał każdą nową mapę cieplną do kompozytowej mapy cieplnej po każdej kategorii. Powstaje zatem pytanie, które podejście byłoby szybsze w obliczeniach - sumy rastrowe lub obliczenia piksel po pikselu.
rudivonstaden

Obawiam się, że ta odpowiedź nie ma nic wspólnego z różnorodnością. W uzyskanej sumie (i normalizacji) bardzo gęsty obszar z wieloma grupami wyglądałby tak samo jak obszar nie tak gęsty, ale z jedną grupą.
Andy W
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.