略谈社交网络:
抽屉里有本书《social networks analysis》,平时也没翻,突然老板说,搞一下社交网络分析,于是就上了。一周下来写个小结。由于在网络中找关键点,已经被分析了很多(比如中心性、流中心性等,而且python有个networks的包,总之没什么难度。),我当时的定位是网络分解:把一个大的网络划分为若干个紧密连接的子网络。
数据的准备以及验证:
作为验证算法的有效性来说,我们没有去找一个已经标记过的网络,而是造了一批数据。我们设定A B C三个群体,分别20、20、50人;同类人与人之间 0.2的概率与其他人发生联系,异类人与人之间0.02的概率法身联系。这样一个用于测试的社交网络就够造好了。
分解的思想:
记得之前看一本书上说:信息是来自于网络的外部(原话已经忘了)。对于局部网络来说他有一些桥梁(边)使他与全局相连,那怎么找到这些桥梁呢?我们使用的方法非常简单,让网络中每一个人都从自己的出发点传递一条信息给其他所有人(当然,因为这些人很懒,他们每次都会走最近的路线),然后看看哪条(边)被最多(或者top K)的人使用,那它就是“桥梁”。拆掉一座桥后,再做相同事情时,会有其他边再次充当桥梁角色,一直拆下去,网络就会断开了。有没有感觉太简单了……(后来发现这和一些书上说的“边介数”是一样的)
分解的效果:
网络点数在100个左右时,在同类链接概率大于异类链接概率的 4 倍时,效果已经非常明显了。在相差10倍时,我们做了多次试验,往往只有0~3个元素被分错网络归属。
社交网络分析:小世界划分与网络分解

本文探讨了社交网络分析中的网络分解问题,通过构造数据验证算法,使用‘边介数’方法寻找网络中的关键连接。当同类链接概率远大于异类链接时,算法效果显著,错误率极低。虽然算法复杂度为N的4次方,但通过遍历边的方式降低了一些复杂性。作者还提到存在优化空间,并希望这次解释得更清晰。
最低0.47元/天 解锁文章
19

被折叠的 条评论
为什么被折叠?



