Chào mừng đến với BIS Đăng nhập | Đăng ký | Trợ giúp
trong Tìm kiếm

Social Network Analysis with R

Bài cuối 08-03-2018 02:50 PM của hathanh97bn. 1 trả lời.
Trang 1 trong số 1 (2 nội dung)
Sắp xếp bài viết: Trước Tiếp theo
  • 06-14-2018 11:04 AM

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 9,985

    Social Network Analysis with R

    Social Network Analysis with R

    Nguyễn Văn Chức, chuc1803@gmail.com

    Phân tích mạng xã hội (Social Network Analysis, SNA) là phương pháp để trực quan hóa (visualize), mô tả các đặc trưng, phát hiện các mối quan hệ hoặc cấu trúc của network.

    Bài viết này giới thiệu cách triển khai Social Network Analysis với ngôn ngữ R sử dụng thư viện igraph.

    Dữ liệu và yêu cầu:

    Package igraph cung cấp tools để thực hiện Social Network Analysis

    Dataset: 2 file .csv dữ liệu về các diễn viên (Actors.csv) và các Film (movies.csv) có thể tải tại ĐÂY

    (Tải code R để thực hiện network analysis tại ĐÂY)

    Dữ liệu file Actors.csv

    Dữ liệu file Movies.csv

    Mục đích là xây dựng một Actor Network để mô tả các thông tin liên quan đến dataset đã cho như cho biết những diễn viên xuất hiện cùng với nhau trong các bộ phim, diễn viên nào xuất hiện cùng với các diễn viên khác trong nhiều film nhất... một cách trực quan bằng cấu trúc network.

    #Social Network Analysis Tutorial

    install.packages("igraph")

    install.packages("readr")

    library(igraph)

    library(readr)

    #Reading Data from github

    setwd("D:/R")

    actors = read.csv("Actors.csv")

    movies = read.csv("Movies.csv")

    Building the Network

    Có 8 diễn viên trong network là Tom Hanks, Gary Sinise, Robin Wright, Bill Paxton, Kevin Bacon, Ed Harris, Sean Connery and Nicolas Cage

    Và 3 Movies là Forest Gump, Apollo 13, The Rock

    Các Movies được xem như các Connection giữa các Actors phụ thuộc vào những phim nào họ  đóng cùng nhau

    Tên những diễn viên có mặt cùng với nhau trong film sẽ xuất hiện cùng nhau trong network, ví dụ diễn viên Tom Hanks và  Gary Sinise sẽ xuất hiện cùng nhau vì họ cùng xuất hiện trong film Forest Gump và Apollo 13.

    Tạo một network với các node là các diễn viên và các cạnh kết nối là các diễn viên xuất hiện cùng nhau trong film, các cạnh trong network là không định hướng chỉ quan tâm đến có xuất hiện cùng nhau trong film

    #Building the Network

    actorNetwork <- graph_from_data_frame(d=movies, vertices=actors, directed=F)

    #Plotting the Network

    plot(actorNetwork)

    Nhìn vào network ta thấy Tom Hanks xuất hiện với Gary Sinise 2 lần (cùng đóng trong 2 film), Ed Harris, Tom Hanks, Gary Sinise xuất hiện cùng với nhiều diễn viên khác trong film nhất (cùng bằng 6)

    Network này cho ta cái nhìn trực quan, để có thêm thông tin chi tiết về network, chẳng hạn tô màu khác nhau để biết các diễn viên xuất hiện cùng nhau trong film nào, ở đây màu Green là film Forest Gump, màu Black là Film Apollo 13 và màu orange là film The Rock, ta thực hiện như sau:

    E(actorNetwork)$color <- ifelse(E(actorNetwork)$Movie == "Forest Gump", "green",

                                    ifelse(E(actorNetwork)$Movie == "Apollo 13", "black",

                                           "orange"))

    # Re-Plot the network

    plot(actorNetwork)

    Trong network trên ta thấy Robin Wright xuất hiện cùng với Tom Hanks và Gary Sinise trong film Forest Gump; Tom Hanks và Gary Sinise cũng cùng xuất hiện trong film Forest Gump. Ta cũng có thể tô màu network dựa vào các thuộc tính khác của actors, ví dụ:

    V(actorNetwork)$color <- ifelse(V(actorNetwork)$BestActorActress == "Winner", "gold",

                                    ifelse(V(actorNetwork)$BestActorActress == "Nominated","grey",

                                           "lightblue"))

    #Re-Plot the Network

    plot(actorNetwork)

    Để cho Network dễ hiểu hơn, thêm chú thích (legend) vào network

    #Legends the Network

    plot(actorNetwork, vertex.frame.color="white")

    legend("topright",c("Forest Gump","Apollo 13", "The Rock"),

           col=c("green","black","orange"), lty=1, cex=.3)

    Mô tả network

    Mặc dù hình ảnh trực quan của network rất hữu ích cho việc mô tả đặc trưng và cấu trúc network, vị trí của các node được mô tả bằng thuật ngữ độ tập trung (centrality). Có 3 tham số rất quan trọng để mô tả network đó là degree centrality, betweenness centrality và closeness centrality.

    Degree Centrality

    Closeness Centrality

    Betweenness Centrality

     Xem thêm về các tham số degree centrality, betweenness centrality và closeness centrality trong Social Network Analysis tại đây:

    https://cambridge-intelligence.com/keylines-faqs-social-network-analysis/

    Xem Clip hướng dẫn Social Network Analysis tại ĐÂY 
    • Điểm chủ đề: 35
  • 08-03-2018 02:50 PM trả lời

    Re: Social Network Analysis with R

    Bài viết rất hữu ích, cảm ơn anh đã chia sẻ. Rất mong có thể học hỏi nhiều hơn về Social Network Analysis. Nhưng mà đọc những ví dụ như này em vẫn hơi thấy nó khác với thực tế công việc social analysis của mình, em vẫn chưa biết cách áp dụng với vấn đề của mình :(((
    • Điểm chủ đề: 20
Trang 1 trong số 1 (2 nội dung)
Powered by Community Server (Commercial Edition), by Telligent Systems