Neo4j: n graafinen visualisointi Neovis.js: n avulla

Kaavioalgoritmien hyödyntäminen tietojen visualisointiin

(William Lyon) (16. huhtikuuta 2018)

Päivitys: OReilly-kirja ”Apache Sparkin ja Neo4j-kirjan graafialgoritmit” on nyt saatavana nimellä ilmainen e-kirjojen lataus osoitteesta neo4j.com

Tässä viestissä käytämme Neo4j Sandbox -esiintymää aloittaaksesi Twitter-tietojoukolla, suorittamalla PageRank ja yhteisötunnistus tiedoissa. Näytä sitten, kuinka kaavion visualisointi upotetaan verkkosovellukseen käyttämällä Neovis.js .

Tässä viestissä tutkitaan, kuinka luodaan kaaviotietojen visualisointeja, jotka käyttävät kuvaajan algoritmien tuloksia, kuten PageRank ja yhteisön tunnistus . Kun olemme suorittaneet joitain kaavion algoritmeja neo4j-graph-algoritmien kirjastolla, käytämme JavaScripti-graafin visualisointikirjastoa Neovis.js luoda visualisointeja, jotka voidaan upottaa verkkosovellukseen hakemalla tietoja suoraan Neo4j: stä.

Kaavion visualisoinnin tavoitteet

Kaavioiden visualisointien luomiseen on erilaisia ​​motivaatioita ja työkaluja. Tämä sisältää työkaluja kaavion tutkimiseen – vuorovaikutteisten visualisointien tyyppi, jonka saatat nähdä kohdassa Neo4j-selain . Tai visualisoinnit kohteelle , joissa näytetään jonkin analyysin tulokset . Nämä voivat olla vuorovaikutteisia (jotain upotettavaa verkkosovellukseen tai jopa erilliseen sovellukseen) tai staattisia, tarkoitettu välittämään erityistä merkitystä , jota voidaan käyttää painetussa muodossa tai blogikirjoituksessa.

Tämä viesti keskittyy yhteen työkaluun, joka käsittelee joitain kaavion visualisoinnin tavoitteita. Tämä työkalu on Neovis.js , ja sitä käytetään verkkosovellukseen upotettujen JavaScript-pohjaisten kaavioiden visualisointien luomiseen. Se käyttää JavaScript Neo4j -ohjainta yhteyden muodostamiseen ja tietojen hakemiseen Neo4j: stä ja JavaScript-kirjastoa visualisointiin nimeltä vis .js kuvaajan visualisointien renderoimiseksi. Neovis.js voi myös hyödyntää graafisten algoritmien, kuten PageRank ja yhteisötunnistus, tuloksia visualisoinnin muotoilussa sitomalla ominaisuusarvot visuaalisiin komponentteihin.

Tämä kuvaruutu näyttää miten Neovis.js -kirjastoa käytetään luomaan kaaviotietojen visualisointeja, jotka on muotoiltu kaavioalgoritmien tuloksiin Neo4j: n tiedoilla.

Kuvaajan visualisointi + Kaavioalgoritmit

On olemassa kolme yleistä tapoja, joilla kuvaajan visualisointeja voidaan parantaa graafi-algoritmeilla. Tähän sisältyy erityisesti visuaalisten komponenttien muotoilu suhteessa näiden algoritmien tuloksiin:

  1. Solmun koon sitominen keskialgoritmiin , kuten aste, PageRank tai keskinäisyys. Tämän avulla voimme nähdä yhdellä silmäyksellä verkon tärkeimmät solmut.
  2. Ryhmitellä visuaalisesti yhteisöjä tai klustereita tehdään värin avulla, jotta voimme nopeasti tunnistaa nämä erilliset ryhmittelyt.
  3. Muotoilusuhteen paksuus suhteessa -reunapainoon , sosiaalisen verkoston tiedoissa tämä saattaa olla kahden merkin välisten vuorovaikutusten määrä, logistiikka- ja reititystiedoissa se voi olla kahden jakelukeskuksen välinen etäisyys ja siitä on hyötyä polkujen etsimisen algoritmeille (kuten kuten A * tai Dijkstran).

Aloittaminen tietojoukolla

Aiomme käyttää Venäjän Twitter Trolls -hiekkalaatikkoa tietojoukkona. Tämä tietojoukko sisältää twiittejä tunnetuilta venäläisiltä trollitileiltä, ​​jotka NBC News julkaisi julkisesti. Voit luoda oman Neo4j Sandbox -esiintymän täällä.

Twitter-peurojen tietojoukon tietomalli sisältää twiittejä , Käyttäjät, hashtagit, twiitteissä ja maininnoissa ja uudelleentwiittauksissa jaetut URL-osoitteet.

Kaaviotiedoissa usein kiinnostavimpia suhteita päätellään , eikä niitä ole suoraan mallinnettu tiedoissa. Käyttäjä-käyttäjä uudelleentwiittakaavio on esimerkki tästä. Mitkä käyttäjät uudelleentwiittavat muita käyttäjiä?Kuka on tämän uudelleentwiittakaavion tärkein käyttäjä? Onko olemassa käyttäjäryhmiä, jotka uudelleentwiittavat usein toisiaan?

Tässä on lähetetty twiitti jonka toinen käyttäjä uudelleentwiittasi. Tämä tarkoittaa käyttäjän ja käyttäjän uudelleentwiittaussuhdetta. Ensimmäinen askel on löytää nämä päätellyt uudelleentwiittaussuhteet ja suorittaa kaavioalgoritmeja.

Löydämme tärkeimmät käyttäjät ja yhteisöt, jotka käyttävät tätä uudelleentwiittausverkkoa. etsi ensin kaikki Troll-käyttäjät ja luo RETWEETS -suhde, joka yhdistää suoraan kaavion käyttäjät. Suhteeseen tallennetaan ominaisuus count, joka kertoo, kuinka monta kertaa käyttäjä on uudelleentwiittannut:

Kun olemme luoneet nämä RETWEETS suhteet, voimme suorittaa PageRankin kaavion tässä osassa (voimme käyttää myös Cypher-kyselyä ajaa PageRank projisoidun kuvaajan yli luomatta erikseen suhteita):

Koska määritämme write: true ei vain suorita PageRankia, vaan lisää pagerank -ominaisuuden solmuihin, jotka sisältävät niiden PageRank-pisteet. Sitten voimme kysyä kyseisen ominaisuusarvon avulla löytääksemme kymmenen parhaan Troll-tilin PageRank-pistemäärän mukaan:

Ja lopuksi voimme suorittaa yhteisön havaitsemisalgoritmin uudelleentwiittoverkossa, tässä tapauksessa tarran etenemisen:

Tämä lisää solmuihin ominaisuuden community ja ilmoittaa, minkä yhteisön yhteisö algoritmi on määrittänyt, että solmu kuuluu.

Joten olemme nyt suorittaneet kaksi kaavion algoritmia (PageRank ja tunnisteiden eteneminen), mutta miten ymmärrämme tuloksia? Visualisointi voi auttaa meitä löytämään oivalluksia tiedoista.

Kaavion visualisoinnin luominen Neovis.js: n avulla

Jotta voisimme luoda visualisoinnin Neovis.js: n avulla, meidän on ensin muodostettava yhteys Neo4j: hen. Hiekkalaatikko-instanssimme yksityiskohdat -välilehdeltä löydät Neo4j-ilmentymämme yhteystiedot:

Palvelimen yhteysmerkkijono, käyttäjänimi ja salasana sisällytetään määritysobjektiin, jonka välitämme Neovisin rakentajalle. Meidän on myös määritettävä, mitkä solmutarrat haluamme visualisoida ja miten ne tulisi muotoilla (mitkä ominaisuudet määrittävät solmun koon ja värin).

Neovis.js toimii täyttämällä

-elementti visualisoinnilla, joten meidän on määritettävä kyseisen elementin tunnus konfiguraatioobjektissa, samoin kuin yhteys Neo4j-ilmentymään ja mitä ominaisuuksia käytetään solmun koon, värin määrittämiseen ja suhteen suhde. Tässä on koodi, jolla generoidaan retweet-verkostomme graafinen visualisointi Neo4j Sandbox -esiintymästä, käyttämällä solun kokoa pagerank -ominaisuuden avulla, community värille ja count -suhdeominaisuus suhteen paksuudelle:

Ja visualisointimme näyttää tältä:

On vielä muutama määritysvaihtoehto, joista voit lukea projektin -dokumentaatiosta.

Resurssit

Ilmainen lataus: OReilly “Kaavioalgoritmit Apache Sparkissa ja Neo4j: ssä”

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *