[26][Wizualizacja]

Wizualizacja danych odnosi się do technik prezentacji wyników w formie graficznej, takich jak histogramy, wykresy rozrzutu lub wykresy pudełkowe. Wizualizacja danych jest szczególnym wyzwaniem dla danych o wysokiej wymiarowości. Jeśli twoje pytanie dotyczy tylko tego, jak uzyskać określone oprogramowanie, aby uzyskać określony efekt, prawdopodobnie  to nie tutaj.

PYTANIA: Jak ożywić rozwój sieci społecznościowej?

Szukam biblioteki / narzędzia do wizualizacji zmian w sieci społecznościowej po dodaniu do niej nowych węzłów / krawędzi. Jednym z istniejących rozwiązań jest SoNIA: Social Network Image Animator. To pozwala robić filmy. Dokumentacja SoNIA mówi, że obecnie jest zepsuta, a poza tym wolałbym zamiast tego rozwiązanie oparte na JavaScript. Moje pytanie brzmi: czy znasz jakieś narzędzia czy jesteś w stanie wskazać mi biblioteki, które ułatwiłyby to zadanie? Zaraz po opublikowaniu tego pytania zagłębię się w sigma.js, więc rozważ tę bibliotekę. Ogólnie moje dane wejściowe byłyby mniej więcej takie:

Mamy więc trzy punkty w czasie (1, 2, 3), trzy węzły (A, B, C) i trzy krawędzie, które reprezentują triadowe zamknięcie między trzema rozważanymi węzłami. Co więcej, każdy węzeł będzie miał dwa atrybuty (wiek i płeć), dlatego chciałbym mieć możliwość zmiany kształtu / koloru węzłów. Ponadto po dodaniu nowego węzła idealnie byłoby mieć ForceAtlas2 lub podobny algorytm do dostosowania układu wykresu.

ODPOWIEDZI:

Fantazyjne animacje są fajne. Możesz tworzyć animacje za pomocą matplotlib. Ta odpowiedź  wydaje się wskazywać na rozwiązanie python / networkx / matplotlib. Ale D3.js zapewnia interakcję. Jeśli szukasz rozwiązania internetowego, d3.js jest doskonały.

Wniosek

Byłbym szedł w kierunku opcji python / networkx do analizy sieci (ewentualnie, aby na przykład dodać atrybuty do pliku surowych danych). Następnie do wizualizacji i rozpowszechniania D3.js jest idealny. Możesz być zaskoczony, jak łatwo można napisać d3.js, kiedy się w to zagłębisz. Wierzę, że działa nawet w notebooku ipython!

Moim pierwszym przypuszczeniem jest wizualizacja sieci społecznościowej w Tableau. A w szczególności: budowanie wykresów sieciowych w Tableau. Aby dodać sieć, musisz dodać wymiar czasowy do sekcji „Strony” zmienić dynamikę. To jest ekran z linku powyżej.

Okazało się, że zadanie to było dość łatwe do wykonania przy użyciu vis.js. To był najlepszy przykładowy kod, jaki znalazłem.

Jakie techniki wizualizacji najlepiej opisują zestaw danych rekomendacji?

Napisałem prosty rekomendator, który generuje rekomendacje dla użytkowników na podstawie tego, co kliknęli. Polecający generuje plik danych w następującym formacie:

Przeglądałem niektóre wykresy, ale nie jestem pewien, którego użyć, czy też są inne, które lepiej wyświetlą podobieństwa użytkowników z powyższego zestawu danych. Jakieś sugestie? Wizualizację kieruję na użytkowników biznesowych, którzy wcale nie są techniczni. Chciałbym tylko pokazać im łatwy do zrozumienia obraz, który ukazuje, jak podobni są niektórzy użytkownicy, i przekonuję firmę, że dla tych użytkowników system rekomendacji jest przydatny.

Myślę, że szukasz macierzy podobieństwa. Jeśli nie masz danych dotyczących podobieństwa między niektórymi parami, zawsze możesz pozostawić je jako szare lub białe. Będzie to również działać tylko w przypadku zestawów danych wystarczająco małych, aby właściwie zrozumieć, co się dzieje. Powiedziałbym, że maksymalnie 25 wierszy / kolumn. W macierzy podobieństwa współrzędne xiy odpowiadają dwóm rzeczom, które porównujesz, podczas gdy wielkość mapy kolorów reprezentuje podobieństwo

EDYCJA: Jedną rzeczą, którą możesz zrobić, aby zastąpić mapę kolorów, jest wstawka, powiedzmy, kółka o różnych rozmiarach zgodnie z miarą podobieństwa. Możesz też wstawić same liczby, zmieniając rozmiar liczby, gdy zmienia się wielkość tej liczby. Rozmiar zwykle najlepiej sprawdza się w wizualizacjach biznesowych.

Osobiście uważam, że Netflix ma rację. Podziel go na oceny wiarygodności od 1-5 i pokaż swoje rekomendacje na podstawie liczby żółtych gwiazdek. Nie muszą to być gwiazdy, ale te wykresy oparte na ikonach są bardzo łatwe do zinterpretowania i jasno pokazują punkt.

Wizualizacja wykresu z milionem wierzchołków. Jakiego narzędzia najlepiej użyć do wizualizacji (narysowania wierzchołków i krawędzi) wykresu zawierającego 1000000 wierzchołków? Na wykresie jest około 50000 krawędzi. Potrafię obliczyć położenie poszczególnych wierzchołków i krawędzi. Zastanawiam się nad napisaniem programu do generowania pliku svg. Jakieś inne sugestie?

Sugeruję również oprogramowanie Gephi (https://gephi.github.io), które wydaje się być dość potężne. Dodatkowe informacje na temat korzystania z Gephi w dużych sieciach można znaleźć tutaj i, bardziej ogólnie, tutaj. Cytoscape (http://www.cytoscape.org) to alternatywa dla Gephi, będąca kolejną popularną platformą do kompleksowej analizy sieci i wyobrażanie sobie. Jeśli chcesz programowo pracować z sieciami (w tym wizualizacją) w R, Python lub C / C ++, możesz sprawdzić kolekcję bibliotek igraph. Mówiąc o R, możesz zainteresować następujące posty na blogu: na temat używania R z Cytoscape  i na temat używania R z Gephi .

Aby uzyskać obszerne listy oprogramowania do analizy i wizualizacji sieci, w tym niektóre porównania i recenzje, możesz sprawdzić następujące strony:

1)http://wiki.cytoscape.org/Network_analysis_links;

2)http://www.kdnuggets.com/software/social-network-analysis.html;

3) http://www.activatenetworks.net/social-network-analysis-sna-software-review.

https://gephi.github.io/ mówi, że może obsłużyć milion wierzchołków. Jeśli wykres ma 1000000 wierzchołków i tylko 50000 krawędzi, wówczas większość twoich wierzchołków i tak nie będzie miała żadnych krawędzi. W rzeczywistości specyfikacja Gephi jest podwójnym przykładem: „Sieci do 50 000 węzłów i 1 000 000 krawędzi”

Myślę, że Gephi może napotkać problemy z brakiem pamięci, będziesz potrzebował co najmniej 8 GB pamięci RAM. Chociaż liczba krawędzi nie jest bardzo duża. Być może bardziej odpowiednim narzędziem w tym przypadku będzie GraphViz. Jest to narzędzie wiersza polecenia do wizualizacji sieci i przypuszczalnie byłoby bardziej odporne na rozmiar wykresu. Ponadto, jak pamiętam, w GraphViz można użyć wstępnie obliczonych współrzędnych, aby ułatwić obliczenia. Próbowałem znaleźć rzeczywiste przykłady używania GraphViz z dużymi wykresami, ale nie udało się. Chociaż znalazłem podobną dyskusję na temat nauk obliczeniowych.

Jak wykreślić duże internetowe mapy cieplne?

Chcę wykreślić duże mapy cieplne (powiedzmy macierz). Mogę to zrobić w Python / matplotlib.pyplot z pcolor, ale nie jest interaktywny (i potrzebuję interaktywnej mapy cieplnej). Próbowałem z D3.js, ale to, co znalazłem, ma na celu wyświetlanie małych map cieplnych: http://bl.ocks.org/tjdecke/5558084 Naiwne rozszerzanie tego przykładu o większą matrycę (np.) może spowodować awarię przeglądarki internetowej. Czy ktoś może wskazać mi dobry sposób wyświetlania i interakcji z dużymi mapami cieplnymi z technologią internetową: Chcę mieć możliwość interakcji ze stroną internetową lub notatnikiem ipython.

Plotly i Lightning są [podobno] w stanie wizualizować bardzo duże zbiory danych.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *