图的分类及表示方式

图是描述复杂事务的数据表示形式,由节点和边组成,数学上一般表述为G(V,E)。其中的V(vertical)代表节点,可被理解为事物;E(edge)代表边,描述的是两个事物之间的关系。例如一个图的社交网络图,每个人都可视为节点,而人与人之间的关系可被视为边。

节点的邻居(neighbor)指的是与该节点在同一边另一端的节点。节点的度(degree)指的是该节点邻居的数量.

1、图的分类:

(1)按边有无方向,可将图分为有向图和无向图,如下图所示。有向边的出发节点称为头节点,结束节点则称为尾节点。

 (2)按节点和边的类别数量,可将图分为同构图和异构图。下图左边的图只有一类节点(用户)和一类关系(朋友关系),即为同构图。若节点类别数量大于1,或关系类别数量大于1,如下图右边所示,则该图为异构图。

 (3)按边是否带有权重可分为无权图和有权图。

2、图的表示:

指计算机以何种方式表示图。

(1)邻接矩阵。假设一个图的节点数量为N,则生成一个N*N的矩阵。矩阵中的值为对应位置节点与节点之间的关系,一般用A表示。

一个图中,若节点X与节点Y有边连接,则在邻接矩阵的对应位置赋值1即可,若两节点间无边连接则赋值0。无向图的邻接矩降是一个以对角矩阵镜像对称的矩阵。而有向图中,将邻接矩阵的行索引代表有向图中有向边的头节点,列索引代表尾节点,则有向图的邻接矩阵不再是对称矩阵。

若图中有多种关系即异构图,则需要多个邻接矩阵,每种关系对应一个邻接矩阵。

若图带有权重,则邻接矩阵中不再是0和1,而是对应的权重值。

缺点:随着图中节点或关系数量的增长,会使邻接矩阵的维度或个数快速增长,变得异常稀疏。

(2)邻接列表。邻接列表为图中每一个头节点生成一个list,如节点2有一条通向节点1的边和一条通向节点3的边,那么可表示为2 : [ 1 , 3 ]。若边分别带有权值0.5和0.6,可表示为2 : [ (1,0.5) , (3,0.6) ]。

(3)边集。以头尾节点的索引元组表示一条边。例如头节点是h,尾节点是t,那么这一条有向边就是(h, t),如果是一条无向边则就用一对对称元组表示,即(h, t), (t, h)。

3、知识图谱:

 知识图谱是一种高度结构化的数据形式,可以看作是一个有向异构图。一般以三元组的形式存储,对于头节点h、尾结点t以及它们之间的关系r,以三元组(h,r,t)表示。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分类是计算机视觉中的一个重要任务,而稀疏表示分类中常用的一种方法。Python提供了许多库和工具可以实现分类的稀疏表示代码。 稀疏表示是通过将表示为原子的线性组合来表示像。这些原子可由训练像集合中的字典学习获得。通过求解优化问题,可以获得每个像的稀疏表示。然后,可以使用这些表示作为特征来进行分类。 在Python中,通过使用NumPy库可以轻松实现稀疏表示的代码。首先,需要定义一个字典矩阵,该矩阵包含训练像集合中的原子。然后,使用线性代数库中的函数,例如`numpy.linalg.lstsq`函数,通过计算每个像与字典矩阵之间的最优线性组合来获得稀疏表示。 以下是一个简单的示例代码,用于使用稀疏表示像进行分类: ```python import numpy as np def image_classification(image, dictionary): sparse_representation = np.linalg.lstsq(dictionary, image)[0] label = classify(sparse_representation) return label def classify(sparse_representation): # 根据分类算法,如K最近邻、支持向量机等,对稀疏表示进行分类 # 返回分类标签 return label # 从训练像集合中学习字典 dictionary = learn_dictionary(training_images) # 读取待分类像 image = load_image('test_image.jpg') # 对像进行分类 label = image_classification(image, dictionary) print("分类结果:", label) ``` 在上述示例代码中,我们首先定义了`image_classification`函数,该函数接收一个像和字典矩阵作为输入,并返回像的分类标签。通过调用`classify`函数,我们可以对稀疏表示进行分类,使用适当的分类算法来确定像所属的类别。 因此,这是一个简单的分类稀疏表示代码的示例,使用Python可以轻松实现,并通过合适的像特征和分类算法来进行分类

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值