# Mapowanie wymiarów danych na wizualizacje #### Wstęp Co znajdziesz w tym artykule? * Dowiesz się, czym jest wizualizacja danych. * Poznasz kilka skutecznych strategii wizualizacji w wielu wymiarach (od 1D do 4D). #### Problem Analityka opisowa jest jednym z podstawowych elementów cyklu życia każdej analizy związanej z projektem data science lub nawet konkretnym badaniem. Agregacja danych, podsumowanie i wizualizacja to jedne z głównych filarów wspierających ten obszar analizy danych. Od czasów tradycyjnego Business Intelligence, a nawet w obecnej erze sztucznej inteligencji, wizualizacja danych stanowi istotne narzędzie.Wyróżnia się dużą skutecznością w wyodrębnianiu właściwych informacji, zrozumieniu i interpretacji wyników w sposób jasny i łatwy, dlatego jest szeroko stosowana przez różne organizacje. Jednakże radzenie sobie z wielowymiarowymi zbiorami danych, zawierającymi zazwyczaj więcej niż dwa atrybuty, zaczyna powodować problemy, ponieważ medium analizy i komunikacji danych jest zazwyczaj ograniczone do dwóch wymiarów. ##### Wymiar Dane strukturalne zazwyczaj składają się z obserwacji danych reprezentowanych przez wiersze i cech lub atrybutów danych reprezentowanych przez kolumny. Każda kolumna może być również określana jako konkretny **wymiar** **zbioru danych**. ###### Przykład - jakość wina W tym artykule wykorzystany zostanie zestaw danych o jakości wina dostępnego w Repozytorium UMI Machine Learning. Dane składają się z dwóch zbiorów przedstawiających różne atrybuty portugalskiego wina "Vinho Verde". W omawianym przykładzie zostaną wykorzystanę dane z biblioteki Sklearn. Oto przykład kodu: ```python from sklearn.datasets import load_wine wine = load_wine() data = wine['data'] ``` | | alcohol | malic_acid | ash | alcalinity_of_ash | magnesium | total_phenols | flavanoids | nonflavanoid_phenols | proanthocyanins | color_intensity | hue | proline | | --------- | ------- | ---------- | ---- | ----------------- | --------- | ------------- | ---------- | -------------------- | --------------- | --------------- | ---- | ------- | | **Wine0** | 14.23 | 1.71 | 2.43 | 15.6 | 127.0 | 2.80 | 3.06 | 0.28 | 2.29 | 5.64 | 1.04 | 1065.0 | | **Wine1** | 13.20 | 1.78 | 2.14 | 11.2 | 100.0 | 2.65 | 2.76 | 0.26 | 1.28 | 4.38 | 1.05 | 1050.0 | | **Wine2** | 13.16 | 2.36 | 2.67 | 18.6 | 101.0 | 2.80 | 3.24 | 0.30 | 2.81 | 5.68 | 1.03 | 1185.0 | | **Wine3** | 14.37 | 1.95 | 2.50 | 16.8 | 113.0 | 3.85 | 3.49 | 0.24 | 2.18 | 7.80 | 0.86 | 1480.0 | | **Wine4** | 13.24 | 2.59 | 2.87 | 21.0 | 118.0 | 2.80 | 2.69 | 0.39 | 1.82 | 4.32 | 1.04 | 735.0 | Ten przykład obejmuje dwanaście kolumn numerycznych. Każda kolumna określa wymiar danych. #### Wizualizacja danych w jednym wymiarze (1-D) Jednym z najszybszych i najbardziej efektywnych sposobów wizualizacji wszystkich danych liczbowych i ich rozkładów jest wykorzystanie histogramów. ![Histogram](images/1d_histogram.png) Powyższe wykresy dają dobre wyobrażenie o podstawowym rozkładzie danych dla każdego z atrybutów. Przejdźmy do wizualizacji jednego z ciągłych atrybutów numerycznych. Zasadniczo histogram lub wykres gęstości pozwala dobrze zrozumieć, jak dane są dystrybuowane dla tego atrybutu. ![](images/1d_hist_plus_density1.png) ![](images/1d_hist_plus_density.png) ## Analiza wielowariantowa Analiza wielowariantowa to miejsce, w którym zaczyna się złożoność. Tutaj analizujemy wiele wymiarów danych lub atrybutów **(2 lub więcej**). Analiza wielowariantowa obejmuje nie tylko sprawdzanie rozkładów, ale także potencjalnych związków, wzorców i korelacji między tymi atrybutami. #### Wizualizacja danych w dwóch wymiarach (2-D) Jednym z najlepszych sposobów na sprawdzenie potencjalnych związków lub korelacji pomiędzy różnymi atrybutami danych jest wykorzystanie macierzy korelacji parami i przedstawienie jej w formie mapy cieplnej. W statystyce, korelacja lub zależność to każdy statystyczny związek, przyczynowy lub nie, pomiędzy dwoma zmiennymi losowymi lub danymi dwuwartościowymi. W najszerszym znaczeniu korelacja to każde statystyczne powiązanie, choć w rzeczywistości odnosi się do stopnia, w jakim para atrybutów jest liniowo powiązana. Przykłady zjawisk zależnych obejmują wysoką korelację ```0.55``` między ```color_intensity``` i ```alcohol```. Na przekątnej są jedynki, co uzasadnia, że atrybut jest ze sobą silnie skolerowany. Mapa korelacji parami jest symetryczna, ponieważ nie ma znaczenia w jakiej kolejności policzymy korelacje pomiędzy dwoma atrybutami. ![corr_1d](images/corr_1d.png) Kolory na mapie ciepła różnią się w zależności od siły koleracji i można łatwo zauważyć, że niektóre atrybuty są silnie ze sobą skorelowane. Łatwo z takiej postaci jest znaleźć korelacje pomiędzy atrybutami. Innym sposobem na wizualizacje tego samego jest użycie parami wykresów rozrzutu pomiędzy atrybutami, które nas interesują. ![range](images/2d_range.png) Na przekątnej wyświetlane są histogramy dla poszczególnych atrybutów np. `alcohol`. Poza przekątną wyświetlane są punkty (X,Y), które reprezentują wartości numeryczne w zmiennych. Ta reprezentacja pozwala stwierdzić, czy dane 2 zmienne są liniowo zależne (czy występuję linia), czy może są one bardziej rozproszone. W naszych danych atrybuty są rozproszone. Na podstawie powyższego wykresu można zauważyć, że wykresy rozproszenia są również dobrym sposobem na obserwowanie potencjalnych relacji lub wzorców w dwóch wymiarach dla atrybutów danych. Ważną uwagą na temat wykresów rozrzutu parami jest to, że są one w rzeczywistości symetryczne. Wykres rozrzutu dla dowolnej pary atrybutów (X, Y) wygląda inaczej niż dla tych samych atrybutów w (Y, X) tylko dlatego, że skale pionowa i pozioma są różne. Nie zawiera on żadnych nowych informacji. ###### Wizualizacja kategorycznego atrybutu danych Na zbiorze danych wprowadzamy dodatkową zmienną kategoryczną: ```color_intensity_label```, która mówi o jakości wina w następująch regułach: Atrybut ```color_intensity_label='low'``` gdy ```color_intensity``` mniejszy bądź równy od 5. Atrybut ```color_intensity_label='medium'``` gdy ```color_intensity``` większy od 5 i mniejszy od 7. Atrybut ```color_intensity_label='low'``` gdy ```color_intensity``` większy bądź równy od 7. Oto przykład kodu generujący nowy atrybut: ```python data['color_intensity_label'] = data['color_intensity'].apply(lambda value: 'low' if value <= 5 else 'medium' if value <= 7 else 'high') ``` Teraz można narysować rozkład procentowy dla nowej zmiennej kategorycznej: ![](images/2d_catego.png) Wykres wygenerowany powyżej jest jasny i zwięzły i pozwala łatwo porównać kategorie. Dodatkowo należy przyjąć, że atrybut ```color_intensity``` jest oznaczany przez 3 kolory: | color_intensity_label | color | | --------------------- | ------ | | low | green | | medium | orange | | high | red | #### Wizualizacja danych w trzech wymiarach (3-D) Biorąc pod uwagę trzy atrybuty lub wymiary w danych, można je wizualizować poprzez rozważenie wykresu rozrzutu parami i wprowadzenie pojęcia koloru lub odcienia, aby oddzielić wartości w wymiarze kategorycznym. Oto przykład: ![Hue Pair](images/pair_hue.png) Powyższy wykres pozwala na sprawdzenie korelacji i wzorców, a także porównanie wokół grup intensywności koloru. ##### Wizualizacja trzech ciągłych - liczbowych atrybutów. Teraz przyjrzyjmy się strategiom wizualizacji trzech ciągłych, numerycznych atrybutów. Jednym ze sposobów jest posiadanie dwóch wymiarów reprezentowanych jako regularna długość (oś x) i szerokość (oś y), a także przyjęcie pojęcia głębokości (oś z) dla trzeciego wymiaru.![Scatter plot 3d](images/3d_scatter.png) Można również nadal korzystać z regularnych osi 2-D i wprowadzić pojęcie wielkości jako trzeciego wymiaru (zasadniczo wykres bąbelkowy), gdzie wielkość kropek wskazuje wielkość atrybutu ```magnesium```. ![](images/2d_3d_bubblechart.png) Tak więc można zobaczyć, jak wykres powyżej nie jest konwencjonalny wykres rozproszenia, ale bardziej wykres bąbelkowy z różnych wielkości punktów (pęcherzyki) na podstawie stężenia magnezu. ##### Wizualizacja danych w czterech wymiarze (4-D) Przedstawiony wyżej wywód wyraźnie wskazuje, że do wizualizacji wielu wymiarów można wykorzystać różne komponenty wykresów. Jednym ze sposobów wizualizacji danych w czterech wymiarach jest użycie głębi i barwy jako specyficznych wymiarów danych w konwencjonalnym wykresie, takim jak wykres rozrzutu. ![](images/4d.png) Ponadto, podczas gdy interpretacja tych wizualizacji zaczyna być trudna ze względu na złożony charakter działek, nadal można zebrać podstawowe obserwacje. Inną strategią jest zachowanie dwuwymiarowego wykresu, ale użycie barwy i rozmiaru punktu danych jako wymiarów danych. Zazwyczaj byłby to wykres bąbelkowy podobny do tego, który wizualizowaliśmy wcześniej. ![](images/4d_bubble.png) Używamy barwy do reprezentowania ```color_intensity_label```, a wielkości punktu danych do reprezentowania ```malic_acid```. Znacząco poprawia to czytelność danych. Dla wyższych wymiarów 5D, 6D jest również istnieje możliwość wizualizowania danych, jednak to wychodzi poza zakres tego artykułu. ###### Podsumowanie Głównym celem tego artykułu było przedstawienie kilku skutecznych strategii wizualizacji danych, szczególnie gdy liczba wymiarów zaczyna wzrastać. Zachęcam Cię do wykorzystania tych fragmentów do wizualizacji Twoich własnych zbiorów danych w przyszłości. Wizualizacje do tego artykułu zostały przygotowane w Colabie: https://colab.research.google.com/drive/1517B6MO2guvK8km54KEPl-ePUEFoHcjI?usp=sharing