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

数据分析与可视化:谁是安全圈的吃鸡第一人

发布时间:2019-04-16 16:43:26 所属栏目:建站 来源:Omegogogo
导读:放假和小伙伴们打了几把PUBG,大半年没碰,居然也意外地躺着吃了次鸡。吃鸡这个游戏果然得4个认识的人打(dai)战(dai)术(wo)才更有趣。 由于身边搞安全的人比较多,之前也会和一些安全圈的大佬一起玩,经常会有些认识或不认识的黑阔大佬开着高科技带着躺鸡

先用环形关系图看看:

圆上的每个红点代表一位玩家,无数条灰边则将各位玩家串联起来。在这份数据集中一共有1270个节点,他们互相组成了共计14216次好友关系,形成了7128条灰边。称得上是复杂的社交网络了。

我们使用无向图来构建力引导关系,虽然在安全领域的风控、反欺诈方向中使用有向图更为广泛一些,但好友关系是双向的,因此这里用无向图。代码如下:

  1. # -*- coding: UTF-8-*-   
  2. from pyecharts import Graph  
  3. import json  
  4. import sys   
  5. import sqlite3  
  6. conn = sqlite3.connect('db2.db')  
  7. c = conn.cursor()  
  8. print "Opened database successfully";  
  9. ccursor = c.execute("SELECT nickname,friends FROM player")  
  10. nodes = []  
  11. links = []  
  12. temps = []  
  13. for row in cursor:  
  14.     temps.append({"name":row[0],"friends":row[1].split(",")})    
  15.     nodes.append({"name":row[0],"symbolSize":5})  
  16. for temp in temps:  
  17.     for friend in temp["friends"]:  
  18.         if {"name":friend,"symbolSize":5} in nodes:  
  19.             links.append({"source":temp["name"],"target":friend})  
  20. graph = Graph("力导图",width=1400,height=1600)  
  21. graph.add(  
  22.     "",  
  23.     nodes,  
  24.     links,  
  25.     graph_layout = "force",  
  26.     label_pos="right",  
  27.     graph_repulsion=10,  
  28.     line_curve=0.2,  
  29. )  
  30. graph.render() 

得到:

俗话说“物以类聚人以群分”,在我们的数据集中也同样适用。可以观察到这份社交网络其实是由多个小社区群落组成的,比如在最左下角的这个部分,这个小社区处于安全圈的边缘地带,很有可能不是安全从业者,我们放大来看:

这个“五边形”是一个完全子图。在这个小社区中,五个人都互为好友,也被称作“派系(Clique)”,这五个人很有可能经常一起开黑。

同时我们可以看到顶点这位玩家:

如果我们把上面最大的部分看做是安全圈的话,这位叫Feng_Bao的玩家卡在了安全圈与这个5人小社区“道路咽喉”的位置,这样的节点具有较高的“中介中心性(Betweenness Centrality)”,往往具有不可替代的作用。在现实中类似房屋中介一样,买房者与卖房者之间的联系都得靠他。

除了中介中心性,在图论中节点还有另外两个重要性质:度中心性(Degree Centrality)以及紧密中心性(Closeness Centrality)。

一个节点与之相连的边越多,这个节点的度中心性就越高,也就是好友越多,度中心性越高,很可能是具有较高名望的人,比如微博的大V,意见领袖等。

紧密中心性则是衡量一个节点到其他所有节点的最短距离之和的指标,一个节点的紧密中心性越高那么他传播信息的时候也就越不需要依赖其他人。

分别计算一下数据集中三个中心性排名靠前的玩家。

有没有看到眼熟的ID呢:

Image

确实看到一些眼熟的ID,但由于我们前面寻找安全圈的算法并不准确,在收集数据的过程中很可能误入到某些特定的圈子中。比如某些安全圈玩家同时又是二次元爱好者,那么很可能会把这份数据集带入到”二次元圈“。为了尽量避免这种情况,我们使用一些社区发现算法来完成社区的寻找与分割。

(编辑:核心网)

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

热点阅读