南开小巷

导航

图机器学习task1:

task01:图机器学习导论

1.图技术的应用

  • 一切皆可用图表示

2.图的分类

  • 异质图(heterogeneous graph):节点存在不同类型,连接也存在不同类型 (类型数大于等于2)

  • 二分图(Bipartite graph):只存在两类节点,比如:论文和作者,演员和电影,用户给和电影

    • 二分图展开:按U展开(都是同一类型节点,1,2,3都和A有关系,那么在,1,23,之间建立连接),按V展开(A,B都和2,有关系,所以A和B之间建立一条边)

3.图论中几个重要概念

  • 节点连接数(Node degree):一个节点存在多少个连接,那么这个节点的“度”就是多少

    一张图的平均节点连接数:总的节点数E乘以2,然后再除以节点个数N

    如果是有向边的话,那就需要再细分为in-degree和out-degree

    如果一个节点的in-degree等于0,那么它就是一个source;

    如果一个节点的out-degree等于0,那么他就是一个sink

    对于有向图的平均节点连接数:E/N in-degree的平均值会等于out-degree的平均值

  • 图的基本表示:邻接矩阵(Adjacency Matrix)

    通俗一点说就是 “行指向列”,那个位置就是1,比如,2和4之间,第二行第四列就是2指向4,这里有边,所以矩阵的值就是1

    无向图的邻接阵一定是对称矩阵并且主对角线为0,有向图:非对称矩阵

对于无向图,根据邻接图,求某一个节点的连接数:按行或者按列求和就可以了;

对于有向图,根据邻接图,求某一个节点的连接数:4号节点的in-degree是按行求和(即算第四列的总和);out-degree是按列求和(即第四行的数的总和)

思考题:为什么把图表示成矩阵形式?

因为邻接矩阵保留了图的所有信息,它是全息的,把图翻译成计算机的语言

世界上大部分表示图的邻接矩阵都是稀疏矩阵,比如70亿人的社交网络图的邻接矩阵(70亿行,70亿列的矩阵),一个人认识的人不超过1000人,那么这个矩阵只有1000个1,所以是一个稀疏矩阵

  • 图的基本表示:连接列表、邻接列表:以上如果图用邻接矩阵来表示的话,是一个非常稀疏的矩阵,会很占用内存,因此就得找新的方法来表示图,列表就出现了

    • 连接列表:只记录存在连接的节点(对)

  • 邻接列表:用一行表示一个节点,并且在这一行内,把该节点所有的指向信息标明

  • 其他类型的图(带权重的图,比如道路的可通达性,社交人之间的关系)

    两个节点之间有多个关系:

  • 图的连通性




posted on 2023-02-13 22:27  南开小巷  阅读(26)  评论(0编辑  收藏  举报