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

Network Visualization with R

Bài cuối 09-03-2017 10:46 AM của chucnv. 0 trả lời.
Trang 1 trong số 1 (1 nội dung)
Sắp xếp bài viết: Trước Tiếp theo
  • 09-03-2017 10:46 AM

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

    Network Visualization with R

    Network Visualization with R

    chuc1803@gmail.com 

    Trong lĩnh vực khoa học dữ liệu (Data Science) thì trực quan hóa dữ liệu (data visualization) là công việc rất quan trọng giúp hiểu được đặc trưng của dữ liệu cũng như phát hiện các mối quan hệ trong dữ liệu một cách trực quan.

    Bài viết này giới thiệu cách trực quan hóa dữ liệu bằng Network trong gói igraph của R .

    Ví dụ minh họa sử dụng dataset dist_vn. Đây là dữ liệu về khoảng
     cách (km) giữa 8 thành phố của Việt Nam được lưu trong file Excel:
    Bước 1. Install and load igraph package
    install.packages("igraph")
    library(igraph)
    Bước 2. Reading dataset
    #Reading dataset
    setwd("D:/R")
    library(xlsx)
    dist_vn <- read.xlsx("dist_vn.xlsx",1, header=T)
    dist_vn
     Rõ ràng dữ liệu ở dạng bảng như vậy rất khó cho việc quan sát,
    nhận định về khoảng cách giữa các thành phố
    (thực tế thì dữ liệu rất nhiều dòng và nhiều cột nên càng khó quan sát hơn).
    Bước 3. Data preparation
    Xóa cột đầu tiên và lấy tên cột đầu tiên gán cho tên dòng
    Bước 5. Thực hiện MDS và trực quan hóa
    Thực hiện Multidimensional Scaling (MDS) bằng hàm cmdscale() 
    để lấy tọa độ x và y với k là số chiều tối đa của không gian biểu diễn.
    fit <- cmdscale(dist_vn, eig = TRUE, k = 2)
    x <- fit$points[, 1]
    y <- fit$points[, 2]
    Trực quan hóa kết quả, vị trí của các thành phố gần nhau tùy thuộc 
    vào khoảng cách giữa chúng.
    plot(x, y, pch = 19, xlim = range(x) + c(0, 300))
    text(x, y, pos = 4, labels = row.names(dist_vn))

    Để dễ trực quan hơn, ta tạo ra một network gồm 8 nodes tương ứng với 8 thành phố dựa vào ma trận khoảng cách giữa chúng.

    g <- graph.full(nrow(dist_vn))

    V(g)$label <- row.names(dist_vn)

    layout <- layout.mds(g, dist = as.matrix(dist_vn))

    plot(g, layout = layout, vertex.size = 12)

    Từ khóa đại diện: ,
    • Điểm chủ đề: 20
Trang 1 trong số 1 (1 nội dung)
Powered by Community Server (Commercial Edition), by Telligent Systems