Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Narzędzia graficzne dla analityków

Autor: Piotr Karpiuk o piątek 27. Wrzesień 2013


San Francisco Crimespotting map
(Źródło: sanfrancisco.crimespotting.org)

Niedawno natknąłem się w Internecie na interesujący dokument Interactive Dynamics for Visual Analysis J.Heer, B.Shneiderman, 2012, traktujący o interfejsach graficznych dla analityków – ludzi, którzy pracują na danych starając się je zrozumieć, znaleźć w nich wzorce, ale nade wszystko na różne sposoby te dane zwizualizować. Jakie są dzisiejsze oczekiwania od tego typu narzędzi i jakie są w tej dziedzinie najnowsze osiągnięcia/trendy?

Artykuł dla omawianych narzędzi wyszczególnia 12 typów zadań, pogrupowanych w trzy kategorie wyższego rzędu, co pokazuje tabelka obok:

Specyfikacja Wizualizacja
Filtrowanie
Sortowanie
Przekształcanie modelu danych
Manipulacja Selekcja
Nawigacja
Koordynacja widoków (na potrzeby eksploracji wielowymiarowej)
Organizacja okienek i przestrzeni roboczych
Zarządzanie Historia wykonanych operacji
Notatki
Praca zespołowa
Prezentacja

Poniżej co ciekawsze aspekty poszczególnych typów zadań.

Specyfikacja

Wizualizacja

Wyróżniamy trzy główne rodzaje wizualizacji:

  • szablony wykresów (ang. chart typology), np. słupkowe, kołowe, liniowe itp., do których wystarczy dostarczyć własne dane – podejście stosowane np. w Excelu,
  • grafiki sterowane danymi (ang. data-flow graphs), stosowane w klasycznych naukowych podejściach (np. d3.js) i nowszych platformach artystycznych (np. Processing) – proces wizualizacji jest efektem łączenia operatorów zajmujących się importem danych, transformacją, rozmieszczaniem na ekranie, kolorowaniem itd., co zwykle dodatkowo wymaga umiejętności programistycznych,
  • w oparciu o gramatyki formalne (ang. formal grammars) – tutaj mamy do czynienia z językiem programowania wyższego poziomu treściwie opisującym jak dane mają być mapowane na elementy graficzne; to podejście stosowane jest np. w ggplot2 (dla platformy statystycznej R) lub w Protovis (HTML5); bywają środowiska gdzie formalny język jest ukryty przed analitykiem, który przy pomocy myszki posługuje się techniką „przeciągnij i upuść” umieszczając zmienne w odpowiednich „slotach” odpowiadających poszczególnym aspektom grafiki takim jak pozycja, rozmiar, kształt czy kolor (tak jest np. w Tableau).

Filtrowanie

Zadaniem filtrowania jest ograniczenie zbioru wyników zapytania, np. do zadanego przedziału czasu lub zbioru wartości pewnego atrybutu. Znamy wiele różnych kontrolek które nadają się do takich zastosowań, ale godnym szczególnej uwagi, nowym rodzajem kontrolki jest suwak z histogramem, który daje wyobrażenie o tym ile danych obejmie wybrany przez użytkownika przedział:

Źródło: cs.umd.edu


Sortowanie

Dzięki sortowaniu danych możemy je grupować i odkrywać interesujące wzorce. Najprostsze zastosowanie to sortowanie wierszy tabeli po wybranej kolumnie, ale można sobie wyobrazić bardziej wyrafinowane wizualizacje, gdzie sortowanie stara się minimalizować jakieś wartości metryki, co pozwala odkryć dodatkową strukturę. Na poniższym rysunku mamy macierz koincydencji sieci społecznościowej – na osiach X i Y mamy rozmieszczonych alfabetycznie użytkowników, kropka na przecięciu wiersza i kolumny oznacza że użytkownicy są znajomymi. Interaktywnie „sortując” wierzchołki grafu wg. ich stopnia odkrywamy pewną strukturę, a sortowanie jeszcze innego typu wykrywa grupy znajomych (klastry):

Źródło: cs.umd.edu

Manipulacja

Selekcja

Typowy sposób selekcji elementów wizualizacji to najechanie kursorem myszki, kliknięcie przycisku myszki, wybór obszaru poprzez zarysowanie kształtu (prostokąt, „lasso”), czy tzw. bubble cursor, który selekcjonuje elementy znajdujące się najbliżej kursora myszki. Na rysunku poniżej trochę bardziej wysublimowany przykład: baza danych samochodów, na poszczególnych osiach mamy odłożone takie wymiary jak liczba cylindrów, waga, moc silnika, przebieg czy rok produkcji. Analityk modyfikując za pomocą myszki zaznaczenia na poszczególnych osiach wybrał samochody o małej wadze i z dużym przebiegiem na liczniku.

Źródło: cs.umd.edu

Najbardziej wyrafinowaną (i elastyczną) formą selekcji elementów graficznych jest opracowanie dostępnego dla analityka języka zapytań – wynikiem zapytania jest selekcja.

Istotnym wyzwaniem jest selekcja elementów graficznych, których nie widać aktualnie na ekranie. Przykładowo wyniki wyszukiwania tekstowego mogą być pokazywane jako markery na pasku przewijania dokumentu, dając pogląd na to ile tych wyników jest i w której części dokumentu.

Nawigacja

Często stosowanym wzorcem nawigacji jest „Najpierw podgląd całości, powiększanie i filtrowanie, a potem szczegóły na żądanie” (ang. overview first, zoom and filter, then details-on-demand). Popularne jest też podejście „wyszukaj, pokaż kontekst, rozwiń na żądanie” (ang. search, show context, expand on demand).

Semantyczne powiększanie (ang. semantic zooming) to model, w którym powiększeniu towarzyszy pojawienie się dodatkowych informacji (a nie tylko skalowanie).

Technika „zbliżenie plus kontekst” (ang. focus plus context) pozwala przyjrzeć się szczegółowi z jednoczesnym podglądem otoczenia, co pozwala zachować orientację. Najlepiej gdy powiększenie względem otoczenia jest rzędu 5-20 (większe powiększenie może wymagać pośrednich podglądów). Często używa się tej techniki przy mapach, ale proszę spojrzeć na poniższy rysunek.

Źródło: cs.umd.edu

W wyniku selekcji myszką lub wyszukania mamy w drzewie pewne wybrane wierzchołki, dla których pokazywany jest również kontekst w postaci innych, ważnych wierzchołków drzewa (całe drzewo jest bardzo duże, ma 600 tys. wierzchołków). Funkcja DOI (ang. degree-of-interest) wylicza współczynnik ważności dla poszczególnych wierzchołków drzewa (np. wysoki dla wybranych, a także dla głównych kategorii, wierzchołków centralnych grafu lub leżących w pobliżu wierzchołków wybranych) pokazując te które mają wysoki współczynnik i chowając te z niskim. Gdy analityk wybiera inne wierzchołki, funkcja DOI automatycznie się przelicza, a wizualizacja płynnie to uwzględnia.

Koordynacja

Wiele problemów analitycznych wymaga skoordynowania kilku widoków pokazujących naraz te same dane, lecz każda z innej perspektywy. Modyfikacje lub selekcje poczynione w jednej z perspektyw wpływają na to co widać w pozostałych widokach.

Źródło: cs.umd.edu

Na poniższym rysunku (po lewej) wizualizującym bazę danych o basebolistach zaznaczono zawodników o wysokich dochodach (prawy górny róg), co pokazało że słabo korelują one z długością kariery zawodnika lub pozycją na boisku, ale dobrze z ilością trafień (ang. hits). Z kolei na poniższym rysunku po prawej zaznaczono grupę zawodników którzy zaliczyli asysty (środkowy wykres po lewej), co pokazało wyraźną zależność od ich pozycji na boisku (dolny wykres).

Źródło: cs.umd.edu

Organizacja okienek i przestrzeni roboczych

Na poprzednich rysunkach widzimy zestawy okienek pracowicie umieszczanych przez analityka jedno obok drugiego. Dobrze zaprojektowane narzędzia analityczne dużo uwagi poświęcają wygodzie wyboru/konfigurowania perspektyw i prostocie ich rozmieszczania na ekranie zgodnie z oczekiwaniami użytkownika, co zwykle jest realizowane za pomocą kafelków, a nie okien, i pozwala uniknąć niewygodnych operacji okienkowych.

Zarządzanie

Historia wykonanych operacji

Narzędzie analityczne powinno zachowywać listę wykonanych operacji i pozwalać szybko powrócić do określonego punktu w czasie. Na najbardziej podstawowym poziomie muszą być przynajmniej operacje Undo/Redo (najlepiej z grupowaniem powiązanych semantycznie działań), w dalszej kolejności warto zaoferować użytkownikom możliwość nagrywania lub pisania makr, w celu automatyzowania wykonywanych działań.

Notatki

Analityk podczas pracy poczynia spostrzeżenia i formułuje wnioski, którymi chciałby (podobnie jak całą swoją pracą) podzielić się z innymi lub zachować na później. W związku z tym dobrze jest, jeśli do wizualizacji można przyczepić notatki. Luźne bazgroły jak w rysunku poniżej po lewej są zbyt mocno związane z konkretną wizualizacją (a nawet konkretnymi jej parametrami) i byłoby lepiej, gdyby notatki były związane z obiektami analitycznymi, a nie sposobem ich wizualizacji (wersja po prawej).

Źródło: cs.umd.edu

Praca zespołowa

Analityk powinien być w stanie przynajmniej wyeksportować wizualizację (jako obrazek) oraz wskazany podzbiór danych (jako CSV, XML, XLS itp.) celem pokazania innym lub późniejszej obróbki w innych narzędziach. Pożądaną właściwością jest możliwość zapamiętania aktualnego stanu ekranu tak by inna osoba na swoim koncie mogła go odtworzyć (jeśli narzędzie analityczne jest aplikacją webową, świetnym nośnikiem stanu jest URL). Przydatna bywa funkcjonalność opublikowania wizualizacji w lokalnej sieci.

Prezentacja

Ostatnimi czasy, dziennikarze (New York Times, The Washington Post, The Guardian) sporo eksperymentują z różnymi formami narracyjnej wizualizacji, opowiadającymi historie wzbogacone danymi w postaci wykresów i krótkich komentarzy. Na poniższym rysunku przedstawiono historię przewidywania budżetu USA na przestrzeni ostatnich 20 lat. Grubą kreską zaznaczono faktyczny stan budżetu w danym momencie, zaś prognozy cienkimi liniami.

Źródło: cs.umd.edu

Cenna dla analityków jest możliwość przedstawienia efektów swojej pracy w postaci gotowej prezentacji lub animacji, odkrywającej przed widownią tok rozumowania prowadzącego do określonych wniosków.

Share and Enjoy:
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Śledzik
  • Blip
  • Blogger.com
  • Gadu-Gadu Live
  • LinkedIn
  • MySpace
  • Wykop

Zostaw komentarz

XHTML: Możesz użyć następujących tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>