回顾一下暑期在Future camp学习的推荐算法(二)——基于图的随机游走算法

本文记录了作者在Future Camp学习推荐算法的过程,重点探讨了图的基础知识,如邻接链表和邻接矩阵,以及随机游走算法在无向图和有向图中的应用。作者使用SNAP库遇到困难,但通过不断学习解决了问题。文章还讨论了如何评估无权重和有权重的关联图,虽然最终的算法评估结果不尽如人意,但作者认为整个学习过程富有价值。
摘要由CSDN通过智能技术生成

 

一、Day1 图的基础知识+SNAP初体验

 

1、图的基础知识

1.图的表示:

对于图G=(V, E),V为结点,E为边,一般可以用邻接链表和邻接矩阵表示。

邻接链表是每个结点相邻的节点链接而成链表的集合;邻接矩阵中用1表示结点之间相邻,用0表示不相邻。

 

图可以分为有向图和无向图,无向图如下所示:

(a)图为一个含有5个节点,7条边的无向图G;(b)为G的邻接链表表示;(c)为G的邻接矩阵表示

 

有向图如下所示:

(a)图为一个含有6个节点,8条边的有向图G;(b)为G的邻接链表表示;(c)为G的邻接矩阵表示

 

2.图的遍历--DFS(深度优先搜索)、BFS(广度优先搜索)

 

DFS:从图的某一个结点出发,找一个相邻的结点,以这个相邻的结点为准,再找下一个未被遍历的相邻的结点,直到结点没有未被遍历的相邻结点时,返回上一个结点,继续寻找未被遍历的相邻的结点,直到所有的结点被遍历。

 

BFS:从图的某一个结点出发,找距离该结点距离为1的结点,然后找与该结点距离为2的结点,直到遍历所有的结点。

 

3.二分图(Bipartite graph)

二分图简单来说是一种将节点分为两组,并且图中所有的边都跨越这两组的图。

具体定义为:把一个图的顶点划分为两个不相交集和,并且使得每一条边都分别连接这两个集合中的顶点。如果存在这样的划分,则此图为一个二分图。

 

2、配置python2.7环境+SNAP的初体验

<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值