社交网络分析算法(SNA)

本文介绍了社交网络分析的应用场景,如社交圈子识别、精准营销等,并探讨了度、最短路径、紧密中心性和介数中心性等分析指标。此外,还概述了GN、Louvain和LPA/SLPA等社区发现算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近来学习聚类,发现聚类中有一个非常有趣的方向—社交网络分析,这篇只是一篇概况,并没有太多的公式推导和代码,基本是用人话解释社交网络分析中的常用的几种算法。详细到每个算法的以后有空再把详细的公式和代码补上。
目录:
1.应用场景
2.分析指标
3.社区发现算法
3.1 GN算法
3.2 Louvain算法
3.3 LPA与SLPA

  1. 应用场景

社交网络分析中最常用的就是社交圈子的识别,所谓物以类聚,人以群分,一旦能对社交圈子进行分类,能做的事情就会很多。

FaceBook和微信是关于人与人之间的强关系网络,划分社交圈有助于朋友间相互推荐。
领英是关于职业的社交的社交网络,有助于求职和商务合作交流。
微博,Twitter,豆瓣,微信公众号是关于关注与被关注的的弱关系网络,有助于消息和知识的传播。

分好社交网络之后可以对人进行精准化营销,推荐个性化的商品和服务,比如京东;
疾病传播也是由一个中心点向外扩散,切断网络中的关键节点就可以有效阻止传染病的传播;
识别互联网金融行业中的欺诈团伙,进行反欺诈预测;

这只是其中的三个方面,还有很多应用在此不作细讲。

2.分析指标

图,简单来说就是人物(事物)关系的形象化表示。节点(node)代表一个人物,边(edge)代表人物关系。有向图用箭头表示人物间的关系,无向图用线段表示人物间的关系。
顺便提供两份图数据集,可以自己拿来做实验:
斯坦福大学实验数据

网络分析数据集

这里重点讲述社交网络算法的分析指标。

度(Degree)
连接点活跃性的度量;与点相连的边的数目。在有向图中,以顶点A为起点记为出度(out degree)OD(A),以顶点A为终点入度(In degree)ID(A),则顶点A的度为D(A) = OD(A) + ID(A)。
Igraph是图计算和社交网络分析的常用工具,提供了python的接口,安装方式参考官网:Igraph官网点这

这里写图片描述

算了,还是拿权游的数据玩一下比较爽。
计算度:

import csv
edges = []
firstline = True
with open('/Users/huanghuaixian/desktop/stormofswords.csv','r') as f:
    for row in csv.reader(f.read().splitlines()):
        if firstline == True:
            firstline = False
            continue
        u,v,weight = [i for i in row]
        edges.append((u,v,int(weight)))
from igraph import Graph as IGraph
g = IGraph.TupleList(edges ,directed = True ,vertex_name_attr = 'name' ,edge_attrs = None ,weights = True)
print(g)
for p in g.vs:
    print(p['name'],p.degree())

分析一下网络结构:

#角色数
g.vcount()
#143个角色
#网络直径,网络中最长最短路径
print(g.diameter())
#输出7

最短路径

print(g.shortest_paths("Sansa","Margaery"))
print([ names[x] for x in g.get_all_shortest_paths("Sansa","Margaery")[0]])
for p in g.get_all_shortest_paths(
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值