Гомофилия

Прогнозная аналитика на основе сетевых данных в R

Bart Baesens, Ph.D.

Professor of Data Science, KU Leuven and University of Southampton

Что такое гомофилия

Рыбак рыбака видит издалека

  • Общие свойства, увлечения, интересы, происхождение и т. д.
  • Зависит от:
    • Связности узлов с одинаковыми метками
    • Связности узлов с противоположными метками
Прогнозная аналитика на основе сетевых данных в R

Гомофильные сети

  • Без гомофилии

  • Гомофильная
Прогнозная аналитика на основе сетевых данных в R
names <- c('A','B','C','D','E','F','G','H','I','J')
tech <- c(rep('R',6),rep('P',4))
DataScientists <- data.frame(name=names,technology=tech)
DataScienceNetwork <- data.frame(
 from=c('A','A','A','A','B','B','C','C','D','D',
        'D','E','F','F','G','G','H','H','I'),
 to=c('B','C','D','E','C','D','D','G','E','F',
        'G','F','G','I','I','H','I','J','J'),
 label=c(rep('rr',7),'rp','rr','rr','rp','rr','rp','rp',rep('pp',5)))

g <- graph_from_data_frame(DataScienceNetwork,directed = FALSE)

Добавьте технологию как атрибут узла

V(g)$label <- as.character(DataScientists$technology)
V(g)$color <- V(g)$label 
V(g)$color <- gsub('R',"blue3",V(g)$color))
V(g)$color <- gsub('P',"green4",V(g)$color)
Прогнозная аналитика на основе сетевых данных в R

Типы рёбер

Код для окраски рёбер

E(g)$color<-E(g)$label
E(g)$color=gsub('rp','red',E(g)$color)
E(g)$color=gsub('rr','blue3',E(g)$color)
E(g)$color=gsub('pp','green4',E(g)$color)

Код для визуализации сети

pos<-cbind(c(2,1,1.5,2.5,4,4.5,3,3.5,5,6),
c(10.5,9.5,8,8.5,9,7.5,6,4.5,5.5,4))

plot(g,edge.label=NA,vertex.label.color='white',
layout=pos, vertex.size = 25)
Прогнозная аналитика на основе сетевых данных в R

Подсчёт типов рёбер

# R edges
edge_rr<-sum(E(g)$label=='rr')

# Python edges
edge_pp<-sum(E(g)$label=='pp')

# cross label edges
edge_rp<-sum(E(g)$label=='rp')
  • edge_rr=10
  • edge_pp=5
  • edge_rp=4
Прогнозная аналитика на основе сетевых данных в R

Связность сети

$p=\frac{2\cdot edges}{nodes (nodes-1)}$

p <- 2*edges/nodes*(nodes-1)
  • p = 0.42

  • Число рёбер в полносвязной сети: ${{nodes}\choose{2}}=\frac{nodes(nodes-1)}{2}$

Прогнозная аналитика на основе сетевых данных в R

Давайте потренируемся!

Прогнозная аналитика на основе сетевых данных в R

Preparing Video For Download...