Vor ein paar Jahren habe ich die -Bücher verschlungen und mir fiel es schwer, mir alle Charaktere im Kopf zu merken. (Das ist nicht überraschend – es gibt mehr als 150 namentlich genannte Charaktere in der Serie!) Ich blätterte zwischen den Kapiteln hin und her oder suchte ständig im Wiki um mir die Handlungsstränge zu merken. Ich brauchte eine mentale Karte – es gab doch sicher eine bessere Möglichkeit, sich diese Charaktere , oder? Game of Thrones zu „Das Lied von Eis und Feuer“, vorzustellen Die Grundlagen Hier ist abgebildet, das die Beiträge der Wikipedia-Redakteure zu verschiedenen Sprachen veranschaulicht. Anhand dieses Beispiels finden Sie hier einige Grundlagen (oder eine kurze Auffrischung, falls Sie bereits damit vertraut sind) der Konzepte der Graphentheorie: ein Beispiel für ein Netzwerkdiagramm aus Wikipedia Kreise, die die Sprachen darstellen, in denen Artikel geschrieben wurden, sind die „Eckpunkte“ des Graphen (auch als „Knoten“ bezeichnet). Die „Kanten“ sind die Linien, die jedes Paar von Knoten verbinden. Jede Kante im Graphen wird durch eine Inzidenzfunktion bestimmt, die ein Paar von Knoten einer Kante zuordnet. In diesem Beispiel stellt jede Kante (durch Linienstärke oder -dicke) die Anzahl der Redakteure dar, die zu Sprachen beigetragen haben, die die Linie verbindet. Dies ist das, was wir einen ungerichteten einfachen Graphen nennen. „Ungerichtet“ bedeutet, dass {en--> fr} und {fr --> en} identisch sind, und „einfach“ bedeutet, dass nicht mehr als eine Kante jedes Knotenpaar verbindet. Der Graph ist außerdem „gewichtet“, was bedeutet, dass die Dicke der Kanten relativ zur der Beziehung zwischen den Knoten ist. In diesem Beispiel könnte die gewichtete Inzidenzfunktion etwa so aussehen: beiden Stärke Während die visuelle Darstellung von Diagrammen auf diese Weise ein intuitiver Ansatz ist, um schnell und einfach Zusammenhänge aufzuzeigen, sodass sie leicht verständlich sind, können wir aus der Darstellung eines Datensatzes als Diagrammobjekt noch tiefere Erkenntnisse gewinnen. Abrufen der Daten für den Hamilton-Datensatz „In der Datenwissenschaft werden 80 Prozent der Zeit mit der Datenaufbereitung verbracht, 20 Prozent der Zeit werden damit verbracht, sich über die Notwendigkeit der Datenaufbereitung zu beschweren.“ Datenwissenschaftler sind sich vielleicht nicht in allem einig – aber wir sind uns einig, dass der schwierigste Teil eines jeden Projekts darin besteht, die Daten zu beschaffen. Zum Glück haben wir diesen Teil für diesen Artikel hinter uns. Auf Kaggle ist ein schöner, sauberer den Sie einfach herunterladen und mit der grafischen Darstellung beginnen können. Datensatz mit Hamilton- Songtexten verfügbar, Explorative Analyse So sieht der Datensatz aus. Hamilton- Pro Figur/Lied/Textzeile gibt es eine Aufzeichnungszeile. – bezieht sich auf den Namen des Liedes. Titel – bezieht sich auf die Figur, die eine bestimmte Zeile singt. Sprecher – bezieht sich auf die jeweilige Textzeile im Lied. Zeilen Erstellen einer Adjazenzmatrix Um ein Netzwerkdiagramm aller Sprecher zu erstellen, muss Folgendes definiert werden: Hamilton- Knoten (Liste der Sprecher) Kanten (zum Verbinden der einzelnen Lautsprecherpaare) Inzidenzfunktion zum Zuordnen jedes Paars von Eckpunkten zu einer Kante (mit optionalem Gewicht) Die von mir gewählte Inzidenzfunktion ist die . Ich gehe davon aus, dass die Beziehung zweier Charaktere umso stärker ist, je mehr Lieder sie gemeinsam spielen. Anzahl der Lieder, in denen jedes Sprecherpaar gemeinsam auftritt Weight {speaker,x, speaker,y} = #songs that feature both speaker,x and speaker,y Mithilfe von dplyr in R kann ich meinen ursprünglichen Datensatz in eine Entität umwandeln und diese dann in eine Adjazenzmatrix konvertieren. Anschließend kann ich graph.adjacency im verwenden, um aus dieser Adjazenzmatrix ein „Graphobjekt“ zu erstellen, das ich dann zum Plotten und für andere Analysen verwenden kann. **{src, dest, weight}** igraph-Paket von R Visualisierung des Netzwerkdiagramms Das graph_obj kann mit der Funktion visualisiert werden. Da diese Funktion viele benutzerdefinierte Layouts zur Auswahl hat, beginne ich mit der Darstellung desselben Diagramms mit dem „Stern“-Layout. plot.igraph Das Ergebnis ist technisch gesehen ein Netzwerkdiagramm. Aber kann man es noch besser machen? Das obige Diagramm scheint zu suggerieren, dass alle Eckpunkte und Kanten gleich wichtig sind – aber das untergräbt den ganzen Sinn der Visualisierung eines sozialen Netzwerks. Manche Charaktere sind tatsächlich „bedeutender“ und manche Sprecher haben im Vergleich zu anderen stärkere Beziehungen. Wie kann diese Grafik das widerspiegeln? Hier kommen und ins Spiel. Ich beginne damit, mit den Parametern der Funktion herumzuspielen, um (also die Dicke der Kante im Plot) relativ zum Gewicht und (also die Schriftgröße der Scheitelpunkte) relativ zum zu machen. Kantengewicht Scheitelpunktgrad plot.igraph edge.width vertex.label.cex Grad Viel besser! Charaktere mit einem höheren Grad sind optisch größer und die Unterscheidung zwischen starken und schwachen Beziehungen ist auch an der Dunkelheit der Linien erkennbar. Diese Iteration ist viel intuitiver und lässt den Zuschauer die Beziehungen zwischen den Charakteren sofort erfassen. Es ist auch passend, dass König George ein einsamer Knoten ist, wenn man bedenkt, dass seine Lieder immer (sehr lustige) Monologe sind. Sie können auch Bibliothek in R verwenden, um ein Netzwerkdiagramm zu erstellen. Die Bibliothek ermöglicht das Vergrößern und Verkleinern mehrerer Teile des Diagramms (besonders nützlich bei einem besonders großen Diagramm) und unterstützt Shiny. die visNetwork- interaktives Zentralitätsmaßnahmen ist ein Schlüsselkonzept der Graphentheorie, um die Bedeutung von Knoten zu erkennen: Zentralität : Dies ist ein Maß für die Anzahl der Kanten, die mit jedem Knoten verbunden sind. Gradzentralität : Dies ist ein Maß dafür, wie „gut verbunden“ ein Knoten ist, wie viele Links Verbindungen über das Netzwerk gemeinsam nutzen usw. Es identifiziert Knoten mit Einfluss auf das gesamte Netzwerk, nicht nur auf diejenigen, die direkt mit ihm verbunden sind. Eigenzentralität Damit ist buchstäblich gemeint, wie weit ein bestimmter Knoten anderen Knoten liegt und als „Brücke“ zwischen verschiedenen Netzwerkclustern fungiert. Es ist ein Maß für den „Einfluss“ jedes einzelnen Knotens auf den Rest des Netzwerks. Betweenness Centrality: zwischen Ich kann die Funktionen degree(), betweenness() und eigen_centrality() von igraph verwenden, um die Zentralität für den generierten Graphen zu erhalten: Es sieht so aus, als ob Aaron Burr die höchste (die „Brücke“) in unserem Diagramm hat, während Hamilton die höchste (der „Einflussgeber“) hat. Machen Sie daraus, was Sie wollen. Betweenness Centrality Eigenvektorzentralität Abschluss Es gibt zahlreiche geschäftliche Anwendungen für Netzwerkdiagramme: Soziale Netzwerke nutzen Netzwerkdiagramme, um Communities ähnlicher Benutzer zu erstellen und gezielte Empfehlungen anzubieten. Eine rudimentäre Implementierung des Algorithmus hinter der Funktion „Freundesvorschläge“ könnte etwa so aussehen: „Neun von zehn engen Freunden von Alice sind auch mit Bob befreundet -> Bob als potenziellen Freund für Alice empfehlen.“ Anwendungen, die die kürzeste Entfernung von Ort X zu Ort Y abbilden (wie etwa Karten, Mitfahrdienste, Lieferketten und Logistik für Lieferwagen usw.), verwenden wahrscheinlich Varianten von Algorithmen für den „kürzesten Weg“, die in der Informatik allgemein als bekannt sind. Problem des Handlungsreisenden Die Netzwerktheorie ist ein entscheidender Bestandteil der lexikalischen und semantischen Verarbeitung innerhalb der Verarbeitung natürlicher Sprache (NLP), die wiederum bei Chatbots und virtuellen Assistenten wie Alexa, Cortana, Siri und sogar zum Einsatz kommt, einem alles andere als einfachen Wortspiel voller Wortspiele. dem siegreichen Jeopardy! von IBM Watson Bei Partyspielen wie bei denen viele Namen fallen, werden Netzwerkdiagramme verwendet. „Six Degrees of Kevin Bacon“, In der Epidemiologie können Zentralitätsmaße zur Identifizierung der Ursprünge von Pandemien oder „Superspreader“-Ereignissen verwendet werden. Wenn man darüber nachdenkt, ist das Internet einfach ein gigantisches Netzwerk verschiedener Websites. Suchmaschinen nutzen Maßnahmen, um die relevantesten Seiten für eine bestimmte Suchanfrage zurückzugeben. Wissensgraphen- So unterhaltsam sie auch sind, es ist wichtig zu beachten, dass Netzwerkdiagramme bei der Verwendung in der Produktion nicht ohne Nachteile sind. Sie können beispielsweise ressourcenintensiv sein. Wie bei allen Matrixoperationen leiden manchmal Skalierbarkeit und Leistung darunter. Es gibt auch ein „Kaltstart“-Problem: Wenn Ihr Datensatz zu spärlich ist oder nicht wirklich viele Beziehungen zwischen Entitäten bestehen, ist ein Netzwerkdiagramm keine effektive Lösung. Richtig und im richtigen Kontext verwendet, können sie jedoch für das Geschäft wertvoll sein. • Code: https://github.com/iswaryam/hamilton/ Datensatzquelle: https://www.kaggle.com/lbalter/hamilton-lyrics# Wenn Sie ein Potterhead sind, schauen Sie sich mein GitHub an – ich habe auch die Charaktere von mit einer ähnlichen Methode grafisch dargestellt. Harry Potter