加入收藏 | 设为首页 | 会员中心 | 我要投稿 宿州站长网 (https://www.0557zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

文本挖掘:社交网络、社群划分

发布时间:2021-11-12 04:17:36 所属栏目:大数据 来源:网络整理
导读:副标题#e# 作者:Matt ? 自然语言处理实习生 http://blog.csdn.net/sinat_26917383/article/details/51444536 回复此公众号 “ 社交网络 ”获取word版原文查看。向小编咨询问题,联系 微信:hai299014 一、关系网络数据类型 关系网络需要什么样子的数据呢?

degree(g,normalized?=?T)?#相对点中心度=绝对点中心度/最大度数(可以作为不同网络结构的比较,相对数与绝对数的区别)??


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


  1. degree.distribution(g)????


点度频率每种点度数的个数/所有点个数(比如(1,4)点度数分别为1,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的,所以用网络点的总数量)


  1. closeness(g,vids=which(V(g)$label=="c"))??#某点四周的接近中心度,mode="out"是有向图,默认是无向图为in??

  2. ???#设置normalized?=?T为相对接近中心度??


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


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

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

(1)点的中心度——betweenness


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

  1. betweenness(g,normalized?=?T)??

  2. ???#normalized?=?T代表相对数,默认值为F为绝对值??

  3. ???#mode有Out和in分别代表有向和无向??


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

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

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


  1. edge.betweenness(g)??

  2. ???#normalized?=?T代表相对数,默认值为F为绝对值??

  3. ???#mode有Out和in分别代表有向和无向??


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


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


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


  1. evcent(g,scale?=?F)$vector??#系统不论是否重要,都会计算所有点四周的相邻矩阵,根据矩阵求得点的特征向量,耗时巨大??

  2. ???#scale=F没有归一化,T代表输出数据进行标准化??

  3. ???#mode有Out和in分别代表有向和无向??


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

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


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

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

  1. page.rank(g,scale=F)$vector??

  2. ???#scale=F没有归一化,T代表输出数据进行标准化??

  3. ???#mode有Out和in分别代表有向和无向??



二、中心势

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

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

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

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

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

1、网络聚类系数——transitivity

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


  1. transitivity(g)??

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


2、网络密度——graph.density

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


  1. graph.density(g.zn)??

  2. graph.density(group1)??

  3. graph.density(group2)??

  4. #从中可以看到不同社群与整体之间的网络密度情况(关联程度)??


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


社群划分跟聚类差不多,参照《R语言与网站分析》第九章,社群结构特点:社群内边密度要高于社群间边密度,社群内部连接相对紧密,各个社群之间连接相对稀疏。


社群发现有五种模型:点连接、随机游走、自旋玻璃、中间中心度、标签发现。

评价社群三个指标:模块化指标Q、网络聚类系数、网络密度。

画图有三种方法:直接plot、书中自编译函数、SVG。


不同社群划分模型的区别



一、社群发现模型

1、基于点连接的社群发现——clusters

如果一个点与社群有联系则放在一个网络中,简单易懂,耗时短,但是分类效果并不特别好。


文本挖掘:社交网络、社群划分


  1. clusters(g.dir,mode="weak")??


mode是用来选择强关联还是弱关联,weak or strong.


2、随机游走的社群发现


文本挖掘:社交网络、社群划分


  1. member<-walktrap.community(g.undir,weights=E(g)$weight,step=4)??

(编辑:宿州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读