每每以为攀得众山小,可、每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~

———————————————————————————

SNA社会关系网络分析中,关键的就是通过一些指标的衡量来评价网络结构稳定性、集中趋势等。主要有中心度以及中心势两大类指标。

以下的代码都是igraph包中的。

————————————————————————————————————————————————————

中心度指标的对比

指标名称 概念 比较 实际应用
点度中心度 在某个点上,有多少条线 强调某点单独的价值 ★作为基本点的描述
接近中心度 该点与网络中其他点距离之和的倒数,越大说明越在中心,越能够很快到达其他点 强调点在网络的价值,越大,越在中心 ★★基本描述,用户价值
中间中心度 代表最短距离是否都经过该点,如果都经过说明这个点很重要,其中包括线的中心度 强调点在其他点之间调节能力,控制能力指数,中介调节效应 ★★推荐算法,用户的控制力
特征向量中心度 根据相邻点的重要性来衡量该点的价值。首先计算邻接矩阵,然后计算邻接矩阵的特征向量。 强调点在网络的价值,并且比接近中心度厉害的是,点价值是根据近邻点来决定的 ★★★推荐算法,用户潜在价值

————————————————————————————————————————————————————

一、中心度

中心度指标有四类点度中心度、接近中心度、中间中心度、特征向量中心度。

1、点度中心度——点出度、点入度、相对点中心度、点度频率

有两个部分:绝对中心度+相对中心度。是最基本的概念,就是在某个点上,有多少条线。比如以下这个数列,“小明”这个点,有三个度(小明-小红,小白-小明,小明-小胖)。

绝对中心度中,在有向图中还有点出度、点入度之分。比如“小明”这个点,有两个点出度(小明-小红,小明-小胖);一个点入度(小白-小明)。

相对点中心度中,相对点中心度=绝对点中心度/最大度数(可以作为不同网络结构的比较,相对数与绝对数的区别),此时小明的相对点中心度就是3/3=1。

id1 di2  
小明  小红  
小张  小白  
小红  小胖  
小胖  小蓝  
小白  小明  
小白  小张  
小明  小胖

degree(g,mode="in")      #mode=in点入度;out=点出度;total点度中心度,三者统称绝对点中心度
degree(g,normalized = T) #相对点中心度=绝对点中心度/最大度数(可以作为不同网络结构的比较,相对数与绝对数的区别)

代码解读:Mode是点入度、点出度的区别;normallized=T是计算相对点中心度。

degree.distribution(g)  

点度频率每种点度数的个数/所有点个数(比如(1,2,4,4)点度数分别为1,1,0,2,密度是1/4,1/4,0/4,2/4)。

点度频率跟相对点中心度有一定的相似性,相对来说,点度频率、相对数比绝对数更好,因为相对数可以跨越不同网络进行比较。实战中,点度频率以及相对数中心度比较有用。

2、接近中心度——点出度、点入度、相对接近中心度

该点与网络中其他点距离之和的倒数,越大说明越在中心,越能够很快到达其他点。与点度中心度不同的是,点度更强调某点的相对价值;而接近中心度是某点在网络的价值。

在g的1-2 2-1 3-4中,点2的接近中心度为1/(1+4+4)(1为2与1的距离,4为2到3的距离,因为没有指向3的,所以用网络点的总数量)

closeness(g,vids=which(V(g)$label=="c"))  #某点四周的接近中心度,mode="out"是有向图,默认是无向图为in
   #设置normalized = T为相对接近中心度

与点度中心度一样,有出度、入度还有相对中心度之分。

3、中间中心度——点的中心度以及线的中心度

中心度可以说明,哪些点、线中介效应最强。

(1)点的中心度——betweenness

点的中心度,代表最短距离是否都经过该点,如果都经过说明这个点很重要。也是强调点与网络的价值,而且更能说明转发、中介的情况。

betweenness(g,normalized = T)
   #normalized = T代表相对数,默认值为F为绝对值
   #mode有Out和in分别代表有向和无向

点的中心度也有点出、点入以及相对数情况。

这里可以看到某点的中间中心度,某点betweenness(g,V(g)$label=="c")
同时igraph包在操作过程中,会返回所有点的中心度,比如(1,2,4,5)则会返回5个数字,没有的3也会有位置。

(2)线的中间中心度——edge.betweenness

edge.betweenness(g)
   #normalized = T代表相对数,默认值为F为绝对值
   #mode有Out和in分别代表有向和无向

如果你要返回某条线的中间中心度,edge.betweenness(g,e=E(g,path=c(which(V(g)$label=="a"),which(V(g)$label=="c")))),e就代表起点,终点的线。

4、点的特征向量中心度——evcent

如果某人四周都是大牛人,那么这个人也很牛逼,这个方法是根据相邻点的重要性来衡量该点的价值。首先计算邻接矩阵,然后计算邻接矩阵的特征向量。

evcent(g,scale = F)$vector  #系统不论是否重要,都会计算所有点四周的相邻矩阵,根据矩阵求得点的特征向量,耗时巨大
   #scale=F没有归一化,T代表输出数据进行标准化
   #mode有Out和in分别代表有向和无向

该函数会计算所有点的相邻矩阵,所以耗时巨大。算法原理中的,如果计算邻接矩阵,每个邻接点的权重笔者还不是很能看懂。。。

同时,scale=T,可以将输出的数据归一化。

另外一个机遇特征向量中心度的指标是:page.rank特征向量中心度。这个是谷歌开发的,对于一些搜索的竞价排名做的指标。原理跟特征向量中心度差不多:

计算邻接矩阵——按行标准化——计算矩阵的特征向量。

page.rank(g,scale=F)$vector
   #scale=F没有归一化,T代表输出数据进行标准化
   #mode有Out和in分别代表有向和无向

————————————————————————————————————————————————————

二、中心势

中心度都是在说点-点,点-网络。如果单论网络的话,有哪些指标呢? 用中心势来表示。前叙述的三个中心度指标都可以分别打造一款中心势。

中心势的原理就是比较一个网络的边缘点以及中心点的中心度的情况,

如果一个网络很集中,那么势必是中心点,中心度高;而边缘点中心度低。

如果一个网络很稀疏,那么中心点、边缘点的中心度没有多少差异。

这边笔者么有看到太多的关于中心势的指标,在这从网络中找到了这两个:网络聚类系数、网络密度。

1、网络聚类系数——transitivity

按照图形理论,聚集系数是表示一个图形中节点聚集程度的系数,一个网络一个值。

transitivity(g)

可以衡量网络中关联性如何,值越大代表交互关系越大。说明网络越复杂,越能放在一块儿,聚类。
比如c(1,2,2,3,3,1)=1;c(1,2,2,3,3,1,1,4,4,3)=0.75,他是衡量是否有loop,能否找到循环到自己的线,三元组。

2、网络密度——graph.density

跟网路聚类系数差不多,也是用来形容网络的结构复杂程度。越大,说明网络越复杂,说明网络越能够放在一块。

graph.density(g.zn)
graph.density(group1)
graph.density(group2)
#从中可以看到不同社群与整体之间的网络密度情况(关联程度)

以上两个汉字表,都是比较好的用来描述社群划分是否合理的指标,社群之中的密度越大,三元组聚类系数越多,越好。


每每以为攀得众山小,可、每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~

———————————————————————————

R语言︱SNA-社会关系网络—igraph包(中心度、中心势)(二)的更多相关文章

  1. R语言入门级实例——用igragh包分析社群

    R语言入门级实例——用igragh包分析社群 引入—— 本文的主要目的是初步实现R的igraph包的基础功能,包括绘制关系网络图(social relationship).利用算法进行社群发现(com ...

  2. R语言构建蛋白质网络并实现GN算法

    目录 R语言构建蛋白质网络并实现GN算法 1.蛋白质网络的构建 2.生物网络的模块发现方法 3.模块发现方法实现和图形展示 4.附录:igraph中常用函数 参考链接 R语言构建蛋白质网络并实现GN算 ...

  3. R语言︱贝叶斯网络语言实现及与朴素贝叶斯区别(笔记)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 一.贝叶斯网络与朴素贝叶斯的区别 朴素贝叶斯的 ...

  4. R语言·文本挖掘︱Rwordseg/rJava两包的安装(安到吐血)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言·文本挖掘︱Rwordseg/rJava ...

  5. R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:与前面的RsowballC分词不同的 ...

  6. R语言数据分析利器data.table包—数据框结构处理精讲

    R语言数据分析利器data.table包-数据框结构处理精讲 R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点快.包括两个方面,一方面是写的快,代 ...

  7. R语言︱SNA-社会关系网络—igraph包(社群划分、画图)(三)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 社群划分跟聚类差不多,参照<R语言与网站 ...

  8. R语言数据分析利器data.table包 —— 数据框结构处理精讲

        R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点快.包括两个方面,一方面是写的快,代码简洁,只要一行命令就可以完成诸多任务,另一方面是处理 ...

  9. R语言︱文本挖掘——词云wordcloud2包

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者看到微信公众号探数寻理中提到郎大为Chif ...

随机推荐

  1. #pragma once 与 #ifndef 解析

    转自:http://www.cnblogs.com/hokyhu/archive/2009/03/30/1425604.html 为了避免同一个文件被include多次,C/C++中有两种方式,一种是 ...

  2. 在VMware中安装ubuntu

    如果想在自己设置它的属性,比如时区,语言支持之类的,在开机时按[enter], 否则就是默认的设置了,英文语言,而且还不好调.

  3. 【java学习】spring mvc 公共dao的实现,定义基本的增删改查

    接口类: package com.blog.db.dao; import com.blog.util.Pagination; import java.util.List; public interfa ...

  4. [快速傅立叶变换&快速傅里叶变换]【旧 手写笔记】

    $FFT$好美啊 参考资料: 1.算法导论 2.Miskcoo 3.Menci 4.虚数的意义-阮一峰 简单说一下,具体在下面的图片 实现: 可以用$complex$也可以手写 和计算几何差不多 注意 ...

  5. BZOJ 4269: 再见Xor [高斯消元 线性基]

    4269: 再见Xor Description 给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值. 我太愚蠢了连数组开小了以及$2^{ ...

  6. [Android] Toast问题深度剖析(二)

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者: QQ音乐技术团队 题记 Toast 作为 Android 系统中最常用的类之一,由于其方便的api设计和简洁的交互体验,被我们所广泛采用 ...

  7. C++ 内存分配(new,operator new)面面观 (转)

    本文主要讲述C++ new运算符和operator new, placement new之间的种种关联,new的底层实现,以及operator new的重载和一些在内存池,STL中的应用. 一 new ...

  8. Alex: 2018年对混合现实MR的展望

    原文作者:Alex Kipman, 微软操作系统工程院技术院士 Hello 大家好! 难以置信我们已经走过了2018年的头两个月了. 每年一月份我都会去巴西省亲,和我的家人欢聚一堂,度过一个美好的假日 ...

  9. mysql 军规 (转载)

    导语 来自一线的实战经验 每一条军规背后都是血淋淋教训 不要华丽,只要实用 若有一条让你受益,慰矣 主要针对数据库开发人员 总是在灾难发生后,才想起容灾的重要性 总是在吃过亏后,才记得曾经有人提醒过 ...

  10. [Python Study Notes] Basic I\O + File 操作

    列表操作 Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式. ...