Anda di halaman 1dari 9

Analisis Jaringan Sosial dengan Python

Jaringan saat ini adalah bagian dari kehidupan kita sehari-hari. Mari pelajari cara memvisualisasikan
dan memahami jejaring sosial dengan Python menggunakan Networks.
Jika Anda ingin belajar tentang Analisis Jaringan, ikuti kursus Analisis Jaringan DataCamp dengan
Python (Bagian 1) .

Jaringan ada di mana-mana, jaringan jalan, jaringan teman dan pengikut di media sosial, dan
jaringan rekan kantor. Mereka memainkan peran penting dalam kehidupan kita sehari-hari, mulai
dari menyebarkan informasi berguna hingga memengaruhi pemilihan nasional. Kemampuan untuk
menganalisis jaringan ini dan membuat keputusan berdasarkan informasi tersebut merupakan
keterampilan yang penting bagi setiap analis data.

Fokus dari tutorial ini adalah untuk mengajarkan analisis jaringan sosial (SNA) menggunakan Python
dan NetworkX, perpustakaan Python untuk mempelajari struktur, dinamika, dan fungsi jaringan yang
kompleks. Tutorial ini mengasumsikan bahwa pembaca sudah familiar dengan sintaks dasar Python,
tidak ada pengetahuan SNA sebelumnya yang diharapkan.

pengantar
Mari kita mulai dengan apa yang kita maksud dengan Jejaring Sosial . Di bawah ini Anda melihat
jaringan aktor Bollywood sebagai node. Mereka terhubung dengan garis padat jika mereka telah
bekerja sama dalam setidaknya satu film.

Jadi, kita dapat melihat bahwa baik Amitabh Bachchan dan Abhishek Bachchan telah berakting
dengan semua aktor dalam jaringan, sementara Akshay Kumar hanya bekerja dengan dua Bachchan.
Benar menarik!
Ini juga merupakan jejaring sosial. Setiap jaringan dengan koneksi antar individu, di mana koneksi
menangkap hubungan di antara mereka adalah jaringan sosial. Menganalisis jaringan ini dapat
memberi kami wawasan yang luar biasa tentang orang-orang di jaringan seperti siapa yang benar-
benar berpengaruh, siapa yang paling terhubung, dll.
Setiap jaringan terdiri dari:

Nodes : Individu yang jaringannya sedang kami bangun. Aktor dalam contoh di atas.
Tepi : Koneksi antar node. Ini mewakili hubungan antara node jaringan. Dalam contoh kami,
hubungannya adalah bahwa para aktor telah bekerja sama.

Membuat jaringan menggunakan NetworkX


Ada banyak jenis jaringan. Kami akan menggunakan NetworkX untuk mengembangkan dan
menganalisis berbagai jaringan ini. Untuk memulai, Anda perlu menginstal networkX: Anda dapat
menggunakan:

Jaringan Simetris
Jaringan aktor pertama yang kita buat di atas adalah jaringan simetris karena hubungan "bekerja
sama dalam film" adalah hubungan simetris. Jika A terkait dengan B, B juga terkait dengan A. Mari
kita buat jaringan yang kita lihat di atas di NetworkX.

Kami akan menggunakan Graph()metode untuk membuat jaringan baru dan


add_edge()menambahkan tepi antara dua node.
Sekarang mari kita visualisasikan jaringan yang baru saja kita bangun

Jaringan Asimetris
Bagaimana jika hubungan antar node adalah 'anak dari', maka hubungan tersebut tidak lagi simetris.
Jika A adalah anak dari B, maka B bukan anak A. Jaringan seperti itu yang hubungannya asimetris (A
terkait dengan B, tidak berarti B dikaitkan dengan A) disebut jaringan Asimetris . Kita dapat
membangun jaringan asimetris di NetworkX menggunakan DiGraphmetode yang merupakan
singkatan dari Directional Graph . Mari kita buat grafik asimetris.

Sekarang kami memvisualisasikannya. Kita bisa menggunakan draw_networkx()fungsinya seperti


sebelumnya. Namun, mungkin saja node tidak terpisah dan terlihat jelas di jaringan yang digambar.
Untuk menangani ini, kita dapat menggunakan fungsi untuk memaksa tata letak, yang memposisikan
node sedemikian rupa sehingga kita dapat melihatnya dengan jelas. Kita bisa melakukannya dengan
menggunakan spring_layout()fungsi, diikuti oleh fungsi draw_networkx ().

Di bawah ini Anda dapat melihat jaringan dengan dan tanpa menggunakan perintah layout. Yang
dibuat menggunakan perintah tata letak memiliki kejelasan lebih.
Jaringan Tertimbang
Sampai saat ini kami memiliki jaringan tanpa bobot, tetapi mungkin saja jaringan dibuat dengan
bobot, misalnya jika dalam jaringan awal kami menganggap jumlah film yang dikerjakan bersama
sebagai bobot, kami akan mendapatkan Jaringan Berbobot . Mari kita buat satu lagi aktornya, tapi
kali ini kita tambahkan bobot ke jaringan, setiap sisi memiliki bobot yang menandakan jumlah film
yang telah mereka buat bersama.

Gambar di atas menunjukkan jaringan aktor berbobot dalam sebuah circulartata letak. Lebar tepi
menentukan bobot antara dua node.

Multigraf
Kami dapat memberikan atribut yang berbeda ke tepinya. Misalnya, kita dapat mendefinisikan relasi
tetangga antara dua node 'A' dan 'B' menggunakan relationatribut. Jika dalam jaringan dua node
dihubungkan dengan dua tepi (relasi) yang berbeda, kita memiliki multigraph. Kita bisa membuat
multigraph menggunakan MultiGraphkelas.
Konektifitas jaringan
Sekarang jaringan dibuat, dapatkah kita mengetahui lebih banyak tentang node tertentu dalam
jaringan? Baiklah, mari kita bahas beberapa di antaranya.

Gelar
Derajat node menentukan jumlah koneksi yang dimiliki node. NetworkX memiliki fungsi degreeyang
dapat kita gunakan untuk menentukan derajat suatu node dalam jaringan.

Ini akan mengembalikan nilai 3, karena Dev Anand hanya bekerja dengan tiga aktor di jaringan.

Koefisien Pengelompokan
Teramati bahwa orang-orang yang berbagi koneksi di jejaring sosial cenderung membentuk asosiasi.
Dengan kata lain, ada kecenderungan dalam jejaring sosial membentuk cluster. Cluster dari sebuah
node dapat kita tentukan, Local Clustering Coefficient , yaitu pecahan pasangan teman node (yaitu
koneksi) yang saling terhubung. Untuk menentukan koefisien pengelompokan lokal, kami
menggunakan nx.clustering(Graph, Node)fungsi.

Dalam jaringan Aktor simetris, Anda akan menemukan bahwa Dev Anand memiliki koefisien
pengelompokan lokal 1 dan Abhishek Bachchan memiliki koefisien pengelompokan lokal 0,67.

Koefisien pengelompokan rata-rata (jumlah dari semua koefisien pengelompokan lokal dibagi
dengan jumlah node) untuk jaringan Aktor simetris adalah 0,867. Kita bisa mendapatkannya dengan
menggunakan:

Jarak
Kami juga dapat menentukan jalur terpendek antara dua node dan panjangnya di NetworkX
menggunakan nx.shortest_path(Graph, Node1, Node2)dan nx.shortest_path_length(Graph, Node1,
Node2)fungsi masing-masing.

Mengeksekusi
Kita dapat menemukan jarak suatu node dari setiap node lain dalam jaringan menggunakan
algoritma pencarian luas-pertama, dimulai dari node tersebut. networkX menyediakan fungsi
bfs_treeuntuk melakukannya. Jadi jika Anda mencoba T = nx.bfs_tree(G_symmetric, 'Dev
Anand')dan menggambar pohon ini, kita akan mendapatkan struktur jaringan yang memberi tahu
bagaimana kita dapat menjangkau node lain dari jaringan mulai dari Dev Anand.

Keanehan
Eksentrisitas suatu node A didefinisikan sebagai jarak terbesar antara A dan semua node lainnya. Itu
dapat ditemukan menggunakan nx.eccentricity()fungsi. Dalam Aktor-jaringan simetris, Dev Anand
memiliki eksentrisitas 2, dan Abhishek Bachchan memiliki eksentrisitas 1 (Tersambung ke semua).

Influencer Jaringan
Di atas kita pelajari beberapa pengukuran jarak jaringan, yang berguna untuk mengetahui
bagaimana informasi akan menyebar melalui jaringan. Pada bagian ini, kita akan belajar bagaimana
menemukan node (individu) terpenting dalam jaringan. Parameter ini disebut sebagai ukuran
sentralitas .

Ingat gadis populer dari sekolah menengah Anda atau pemain bisbol papan atas sekolah. Mereka
adalah orang-orang yang memiliki kekuatan untuk membuat sekolah menengah Anda mengalami
neraka atau surga. Apa yang memberi mereka kekuatan ini? Centrality Measures dapat membantu
kami mengidentifikasi popularitas, yang paling disukai, dan pemberi pengaruh terbesar dalam
jaringan.
Gelar Sentralitas
Orang yang paling populer atau lebih disukai biasanya adalah orang yang memiliki lebih banyak
teman. Sentralitas derajat adalah ukuran jumlah koneksi yang dimiliki node tertentu dalam jaringan.
Ini didasarkan pada fakta bahwa node penting memiliki banyak koneksi. NetworkX memiliki fungsi
degree_centrality()untuk menghitung sentralitas derajat dari semua node dalam suatu jaringan.

Sentralitas Vektor Eigen


Bukan hanya berapa banyak individu yang terhubung juga, tetapi tipe orang yang terhubung
dengannya yang dapat menentukan pentingnya sebuah node. Di Delhi Roads setiap kali polisi lalu
lintas menangkap seseorang karena melanggar peraturan lalu lintas, kalimat pertama yang didengar
oleh polisi lalu lintas adalah "Apakah Anda tahu dengan siapa saya berhubungan?".

Sentralitas vektor eigen adalah ukuran yang tepat untuk hal ini. Ini memutuskan bahwa sebuah node
penting jika terhubung ke node penting lainnya. Kita dapat menggunakan
eigenvector_centrality()fungsi NetworkX untuk menghitung sentralitas vektor eigen dari semua node
dalam jaringan.

The Pagerank Google algoritma adalah varian dari algoritma sentralitas vektor eigen.

Sentralitas Antara
Sentralitas Antara adalah sentralitas kontrol. Ini mewakili frekuensi di mana suatu titik terjadi pada
geodesik (jalur terpendek) yang menghubungkan pasangan titik. Ini mengukur berapa kali node
tertentu datang di jalur terpendek yang dipilih antara dua node lainnya. Node dengan sentralitas
antara yang tinggi memainkan peran penting dalam arus komunikasi / informasi dalam jaringan.
Node dengan sentralitas antara yang tinggi dapat memiliki kontrol strategis dan pengaruh pada
orang lain. Seorang individu pada posisi strategis dapat mempengaruhi seluruh kelompok, baik
dengan menahan atau mewarnai informasi dalam transmisi.

Networkx memiliki fungsi betweenness_centrality()untuk mengukurnya untuk jaringan. Ini memiliki


opsi untuk memilih apakah kita ingin nilai antara dinormalisasi atau tidak, bobot untuk dimasukkan
dalam perhitungan sentralitas atau tidak, dan untuk memasukkan titik akhir dalam jumlah jalur
terpendek atau tidak.

Menggabungkan semuanya.
Mari kita mulai dengan data Facebook, untuk analisis kita di sini kita akan menggunakan dataset
jaringan ego gabungan Facebook, ini berisi jaringan agregat dari sepuluh daftar teman Facebook
individu. Anda dapat mengunduh facebook_combined.txtfile yang diperlukan dari situs Universitas
Stanford .

Anda bisa mendapatkan data Facebook / Twitter Anda sendiri menggunakan API Facebook / Twitter.
Nantikan tutorial berikutnya yang akan datang di mana kita akan belajar cara menggunakan API
Facebook dan Twitter untuk mendapatkan data dan menggunakan informasi yang diperoleh di sini
untuk menganalisisnya.

Kami membaca di file dan membuat Grafik:

Jaringan terdiri dari 4.039 node, terhubung melalui 88.234 edge! Ya, ini adalah jaringan yang besar.
Anda mendapatkan informasi menggunakan info()fungsi tersebut.

Di bawah ini Anda dapat melihat jaringannya:

Kita juga dapat memvisualisasikan jaringan sedemikian rupa sehingga warna node bervariasi dengan
Derajat dan ukuran node dengan Sentralitas Antara . Kode untuk melakukan ini adalah:
Dan grafik yang dihasilkan adalah:

Kita dapat melihat bahwa beberapa node umum antara Sentralitas Derajat, yang merupakan ukuran
derajat, dan Sentralitas Antara yang mengontrol aliran informasi. Wajar jika node yang lebih
terhubung juga terletak di jalur terpendek antara node lainnya. Node 1912 adalah simpul penting
karena sangat penting menurut ketiga ukuran sentralitas yang telah kami pertimbangkan.

Anda mungkin juga menyukai