Birkaç yıl önce kitaplarını art arda okuyordum ve kafamdaki tüm karakterleri takip etmekte zorlandığımı fark ettim. (Bu şaşırtıcı değil - dizide 150'den fazla adlandırılmış karakter var!) Konuyu hatırlamak için bölümler arasında ileri geri gidiyordum ya da sürekli olarak wiki'sine bakıyordum. Zihinsel bir haritaya ihtiyacım vardı; bu karakterleri daha iyi bir yolu var mıydı mutlaka? Game of Thrones Buz ve Ateşin Şarkısı görselleştirmenin Temeller Burada resimde, Wikipedia editörlerinin farklı dillere katkılarını gösteren, yer almaktadır. Bu örneği kullanarak, grafik teorisi kavramlarının bazı temellerini (veya zaten aşina iseniz hızlı bir tazelemeyi) burada bulabilirsiniz: Wikipedia'dan alınmış örnek bir ağ grafiği Makalelerin yazıldığı dilleri temsil eden daireler grafiğin "köşeleridir" (birbirinin yerine "düğümler"). “Kenarlar”, her bir köşe çiftini birbirine bağlayan çizgilerdir. Grafikteki her kenar, bir çift köşeyi bir kenara eşleyen bir geliş fonksiyonu aracılığıyla belirlenir. Bu örnekte her kenar, satırın bağladığı dile de katkıda bulunan editörlerin sayısını (çizgi kalınlığına veya kalınlığına göre) temsil eder. Buna yönlendirilmemiş basit grafik diyoruz. "Yönlendirilmemiş", {en--> fr} ve {fr --> en}'nin aynı olduğu anlamına gelir ve "basit", her köşe çiftini birden fazla kenarın bağlamadığı anlamına gelir. Grafik aynı zamanda "ağırlıklıdır", yani kenarların kalınlığı, köşeler arasındaki ilişkinin bağlıdır. Bu örnekte ağırlıklı insidans fonksiyonu şuna benzer: her iki gücüne Grafiklerin bu şekilde görsel temsili, anlaşılması kolay olacak şekilde ilişkileri hızlı bir şekilde göstermeye yönelik sezgisel bir yaklaşım olsa da, bir veri kümesini bir grafik nesnesi olarak temsil etmekten elde edebileceğimiz daha da zengin bilgiler vardır. Hamilton veri kümesi için verileri alma “Veri biliminde harcanan zamanın yüzde 80'i veri hazırlamakla geçiyor, yüzde 20'si ise veri hazırlama ihtiyacından şikayet etmekle geçiyor.” Veri bilimcileri her konuda aynı fikirde olmayabilir ancak herhangi bir projenin en zor kısmının veriyi elde etmek olduğu konusunda hemfikiriz. Şanslıyız ki bu yazıda o kısım geride kaldı. şarkı sözlerinin güzel ve temiz bir olup kolayca indirip grafik oluşturmaya başlayabilirsiniz. Hamilton veri kümesi Kaggle'da mevcut Keşifsel analiz veri seti böyle görünüyor. Hamilton Karakter/şarkı/şarkı sözü satırı başına bir kayıt satırı vardır. – şarkının adını ifade eder. Başlık - belirli bir satırı söyleyen karakteri ifade eder. Konuşmacı - şarkının içindeki sözlerin belirli satırlarını ifade eder. Satırlar Bitişiklik matrisi oluşturma Tüm hoparlörlerinin ağ grafiğini oluşturmak için aşağıdakilerin tanımlanması gerekir: Hamilton Düğümler (konuşmacı listesi) Kenarlar (her bir hoparlör çiftini bağlamak için) Her köşe çiftini bir kenara eşlemek için görülme işlevi (isteğe bağlı ağırlıkla) Seçtiğim görülme sıklığı işlevi . Benim varsayımım, iki karakter ne kadar çok şarkıda birlikte görünürse ilişkileri o kadar güçlü olur. , her bir hoparlör çiftinin birlikte göründüğü şarkı sayısıdır Weight {speaker,x, speaker,y} = #songs that feature both speaker,x and speaker,y R'nin dplyr'ini kullanarak orijinal veri kümemi bir varlığına dönüştürebilir ve ardından bunu bir bitişiklik matrisine dönüştürebilirim. Daha sonra bu bitişiklik matrisinden bir "grafik nesnesi" oluşturmak için graph.adjacency'yi kullanabilirim ve bunu daha sonra çizim ve diğer analizler için kullanabilirim. **{src, dest, weight}** R'nin igraph paketindeki Ağ grafiğini görselleştirme graph_obj, işlevi kullanılarak görselleştirilebilir. Bu işlevin seçilebilecek birçok özel düzeni olduğundan, aynı grafiği "yıldız" düzenini kullanarak oluşturarak başlıyorum. plot.igraph Sonuç teknik olarak bir ağ grafiğidir. Ama daha iyisini yapmak mümkün mü? Yukarıdaki grafik, tüm köşelerin ve kenarların eşit öneme sahip olduğunu öne sürüyor gibi görünüyor; ancak bu, bir sosyal ağı görselleştirmenin tüm amacını baltalıyor. Bazı karakterler gerçekten daha "önemlidir" ve bazı konuşmacıların diğerlerine göre daha güçlü ilişkileri vardır. Bu grafik bunu nasıl yansıtıyor? ve burada devreye giriyor. Ağırlığa göre (yani çizimdeki kenarın kalınlığını) ve (yani yazı tipi boyutunu) oluşturmak için işlevinin parametreleriyle oynayarak başlıyorum. köşeler) dereceye göre. Kenar ağırlığı köşe derecesi edge.width vertex.label.cex plot.igraph Çok daha iyi! Derecesi yüksek olan karakterler görsel olarak daha büyük olup, güçlü ve zayıf ilişkiler arasındaki ayrım çizgilerin koyuluğundan da anlaşılmaktadır. Bu yineleme çok daha sezgiseldir ve izleyicinin karakterler arasındaki ilişkileri anında kavramasını sağlar. Şarkılarının her zaman (çok komik) monologlar olduğu göz önüne alındığında, King George'un yalnız bir düğüm olması da uygun. bir ağ grafiği oluşturmak için R'deki kütüphanesini de kullanabilirsiniz. Kitaplık, grafiğin birden çok bölümünü yakınlaştırmayı ve uzaklaştırmayı mümkün kılar (özellikle büyük bir grafikte kullanışlıdır) ve Shiny desteğine sahiptir. Etkileşimli visNetwork Merkezilik önlemleri , grafik teorisinde düğümlerin önemini tanımlayan anahtar bir kavramdır: Merkezilik : Bu, her bir düğüme bağlı kenar sayısının bir ölçüsüdür. Derece merkeziliği : Bu, bir düğümün ne kadar "iyi bağlantılı" olduğunun, ağ üzerinden bağlantıların kaç bağlantı paylaştığının vb. bir ölçüsünü temsil eder. Yalnızca kendisine doğrudan bağlı olanları değil, tüm ağ üzerinde etkisi olan düğümleri tanımlar. Öz merkezilik Bu, kelimenin tam anlamıyla belirli bir düğümün diğer düğümler ne kadar olduğu ve çeşitli ağ kümeleri arasında bir "köprü" görevi gördüğü anlamına gelir. Bu, her bir köşenin ağın geri kalanı üzerindeki "etkisinin" bir ölçüsüdür. Arasındalık merkeziliği: arasında Oluşturulan grafiğin merkeziliğini elde etmek için igraph'ın Degree(), Amongness() ve eigen_centrality() işlevlerini kullanabilirim: Görünüşe göre grafiğimizde Aaron Burr en yüksek ("köprü") sahipken, Hamilton en yüksek ("etkileyici") sahip. Bundan ne istersen yap. aradalık merkeziliğine özvektör merkeziliğine Çözüm Ağ grafiklerinin iş uygulamaları çoktur: Sosyal ağ siteleri, benzer kullanıcılardan oluşan topluluklar oluşturmak ve hedefe yönelik öneriler sunmak için ağ grafiklerinden yararlanır. "Önerilen arkadaşlar" özelliğinin arkasındaki algoritmanın ilkel uygulaması şuna benzer: "Alice'in yakın arkadaşlarından on tanesinden dokuzu aynı zamanda Bob'un arkadaşıdır -> Bob'u Alice için potansiyel bir arkadaş olarak tavsiye eder." X noktasından Y noktasına en kısa mesafeyi haritalandıran uygulamalar (haritalar, araç paylaşımı hizmetleri, tedarik zinciri ve teslimat kamyonları için lojistik vb. gibi) muhtemelen bilgisayar bilimlerinde popüler olarak bilinen "en kısa yol" algoritmalarının çeşitlerini kullanır. . Gezgin satıcı problemi Ağ teorisi, doğal dil işleme (NLP) içindeki sözcüksel ve anlamsal işlemenin çok önemli bir bileşenidir ve sırasıyla sohbet robotları ve Alexa, Cortana, Siri gibi sanal asistanlar ve hatta IBM'in arasında kullanılır. , basit olmaktan çok uzak, kelime oyunları ve kelime oyunlarından oluşan bir oyun. Watson ödüllü Jeopardy!'si gibi isim bırakan parti oyunları ağ grafiklerini kullanır. Six Degrees of Kevin Bacon Epidemiyolojide, pandemilerin veya "süper yayılma" olaylarının kökenlerinin belirlenmesinde merkezilik ölçümleri kullanılabilir. Düşünürseniz, İnternet'in farklı web sitelerinden oluşan devasa bir ağdan ibaret olduğunu görürsünüz. Arama motorları, belirli bir arama sorgusu için en alakalı sayfaları döndürmek amacıyla ölçümlerinden yararlanır. bilgi grafiği Her ne kadar eğlenceli olsa da, ağ grafiklerinin üretimde kullanıldığında dezavantajlarının da olduğunu unutmamak önemlidir. Örneğin, kaynak yoğun olabilirler. Her matris işleminde olduğu gibi ölçeklenebilirlik ve performans bazen darbe alır. Ayrıca bir "soğuk başlangıç" sorunu da vardır; veri kümeniz çok seyrekse veya varlıklar arasında gerçekten çok fazla ilişki yoksa, ağ grafiği etkili bir çözüm değildir. Ancak doğru ve doğru bağlamda kullanıldığında iş açısından değerli olabilirler. • Kod: https://github.com/iswaryam/hamilton/ Veri kümesi kredisi: https://www.kaggle.com/lbalter/hamilton-lyrics# Eğer bir Potterhead iseniz GitHub'uma göz atın. Benzer bir yöntemle karakterlerinin grafiğini de çizdim. Harry Potter