paint-brush
Analyse von Netzwerkgraphen: Visualisierung der Hamilton-Charaktere als soziales Netzwerkvon@iswaryam
1,932 Lesungen
1,932 Lesungen

Analyse von Netzwerkgraphen: Visualisierung der Hamilton-Charaktere als soziales Netzwerk

von Iswarya Murali6m2024/04/16
Read on Terminal Reader

Zu lang; Lesen

Der Artikel befasst sich mit der Verwendung der Graphentheorie zur Visualisierung komplexer Charakternetzwerke in der Literatur anhand von Beispielen aus Game of Thrones und Hamilton. Er behandelt Grundlagen wie Eckpunkte und Kanten, untersucht Datenaufbereitung, Adjazenzmatrizen, Netzwerkplot-Visualisierung, Zentralitätsmaße und praktische Anwendungen von Netzwerkgraphen in verschiedenen Bereichen.
featured image - Analyse von Netzwerkgraphen: Visualisierung der Hamilton-Charaktere als soziales Netzwerk
Iswarya Murali HackerNoon profile picture
0-item
1-item

Vor ein paar Jahren habe ich die Game of Thrones -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 zu „Das Lied von Eis und Feuer“, um mir die Handlungsstränge zu merken. Ich brauchte eine mentale Karte – es gab doch sicher eine bessere Möglichkeit, sich diese Charaktere vorzustellen , oder?



Die Grundlagen

Hier ist ein Beispiel für ein Netzwerkdiagramm aus Wikipedia 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:


Beispiel eines Netzwerkdiagramms


  • 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 beiden 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 Stärke der Beziehung zwischen den Knoten ist. In diesem Beispiel könnte die gewichtete Inzidenzfunktion etwa so aussehen:

Beispiel einer gewichteten Inzidenzfunktion


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 Datensatz mit Hamilton- Songtexten verfügbar, den Sie einfach herunterladen und mit der grafischen Darstellung beginnen können.




Explorative Analyse

So sieht der Hamilton- Datensatz aus.



Pro Figur/Lied/Textzeile gibt es eine Aufzeichnungszeile.

  • Titel – bezieht sich auf den Namen des Liedes.
  • Sprecher – bezieht sich auf die Figur, die eine bestimmte Zeile singt.
  • Zeilen – bezieht sich auf die jeweilige Textzeile im Lied.


Erstellen einer Adjazenzmatrix

Um ein Netzwerkdiagramm aller Hamilton- Sprecher zu erstellen, muss Folgendes definiert werden:

  • 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 Anzahl der Lieder, in denen jedes Sprecherpaar gemeinsam auftritt . Ich gehe davon aus, dass die Beziehung zweier Charaktere umso stärker ist, je mehr Lieder sie gemeinsam spielen.


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 **{src, dest, weight}** Entität umwandeln und diese dann in eine Adjazenzmatrix konvertieren. Anschließend kann ich graph.adjacency im igraph-Paket von R verwenden, um aus dieser Adjazenzmatrix ein „Graphobjekt“ zu erstellen, das ich dann zum Plotten und für andere Analysen verwenden kann.


Visualisierung des Netzwerkdiagramms

Das graph_obj kann mit der Funktion plot.igraph visualisiert werden. Da diese Funktion viele benutzerdefinierte Layouts zur Auswahl hat, beginne ich mit der Darstellung desselben Diagramms mit dem „Stern“-Layout.


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 Kantengewicht und Scheitelpunktgrad ins Spiel. Ich beginne damit, mit den Parametern der Funktion plot.igraph herumzuspielen, um edge.width (also die Dicke der Kante im Plot) relativ zum Gewicht und vertex.label.cex (also die Schriftgröße der Scheitelpunkte) relativ zum Grad zu machen.


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 die visNetwork- Bibliothek in R verwenden, um ein interaktives 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.


Zentralitätsmaßnahmen

Zentralität ist ein Schlüsselkonzept der Graphentheorie, um die Bedeutung von Knoten zu erkennen:

  • Gradzentralität : Dies ist ein Maß für die Anzahl der Kanten, die mit jedem Knoten verbunden sind.

  • Eigenzentralitä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.

  • Betweenness Centrality: Damit ist buchstäblich gemeint, wie weit ein bestimmter Knoten zwischen 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.


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 Betweenness Centrality (die „Brücke“) in unserem Diagramm hat, während Hamilton die höchste Eigenvektorzentralität (der „Einflussgeber“) hat. Machen Sie daraus, was Sie wollen.


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 Problem des Handlungsreisenden bekannt sind.


  • 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 dem siegreichen Jeopardy! von IBM Watson zum Einsatz kommt, einem alles andere als einfachen Wortspiel voller Wortspiele.


  • Bei Partyspielen wie „Six Degrees of Kevin Bacon“, bei denen viele Namen fallen, werden Netzwerkdiagramme verwendet.


  • 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 Wissensgraphen- Maßnahmen, um die relevantesten Seiten für eine bestimmte Suchanfrage zurückzugeben.


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 Harry Potter mit einer ähnlichen Methode grafisch dargestellt.