0Pricing
Learn AI with Python · 课时

机器学习的图论基础

节点、边、邻接矩阵、图类型、图特征和社交网络表示。

机器学习的图论基础 是 CoddyKit 上的免费 Learn AI with Python 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn AI with Python 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn AI with Python 课程共包含 4 节课。

什么是图

图用于表示实体及其之间的关系。形式上,图表示为 G = (V, E),其中 V 是顶点(节点)的集合,E 是连接节点对的边的集合。许多现实系统天然就是图结构。

节点和边

每个节点表示一个实体(用户、原子或网页)。每条边表示一种关系(友谊、化学键或超链接)。图机器学习利用这种连接结构进行学习,而不只是处理彼此孤立的样本。

邻接矩阵

邻接矩阵 A 用于编码哪些节点彼此相连。对于 n 个节点,A 是一个 n×n 矩阵;如果一条边连接节点 i 和节点 j,则 A[i][j] = 1,否则为 0。

import numpy as np

# Triangle: 0-1, 1-2, 0-2
A = np.array([
    [0, 1, 1],
    [1, 0, 1],
    [1, 1, 0],
])

节点特征 X

除了结构之外,每个节点通常还带有一个特征向量。将这些向量堆叠在一起,就形成形状为(节点数,特征数)的特征矩阵 X。对于社交图,其中一行可能包含用户年龄、发帖数量和账户年龄。

X = np.array([
    [25, 120, 3.0],   # node 0
    [31,  45, 5.5],   # node 1
    [22, 300, 1.2],   # node 2
])

度矩阵

节点的度是与其相连的边的数量。度矩阵 D 是一个对角矩阵,每个对角线元素等于对应节点的度。它是图拉普拉斯矩阵的构建基础。

D = np.diag(A.sum(axis=1))
# Each diagonal entry = number of neighbors

图拉普拉斯矩阵

图拉普拉斯矩阵定义为 L = D - A。它描述相连节点之间数值的差异,是谱图理论和许多 GNN 公式的基础。

L = D - A
print(L)

拉普拉斯矩阵为何重要

拉普拉斯矩阵的特征值和特征向量可以揭示全局结构,包括连通性、簇和光滑性。图卷积通常由拉普拉斯矩阵推导而来,因此理解 L = D - A 是理解 GNN 的关键。

有向图与无向图

在无向图中,边没有方向(例如友谊),因此 A 是对称的。在有向图中,边只指向一个方向(例如关注关系或引用关系),因此 A 可能不对称:A[i][j] 可能不同于 A[j][i]。

# Directed: 0 -> 1 but not 1 -> 0
A_dir = np.array([
    [0, 1, 0],
    [0, 0, 1],
    [0, 0, 0],
])

加权图

边可以带有表示强度或距离的权重。此时,邻接矩阵中的元素是实数,而不只是 0 或 1。道路网络可以用行驶时间为边赋权;相似度图则可以使用余弦相似度作为权重。

高效表示边

对于大型稀疏图,邻接矩阵会浪费内存,因为其中大多数元素都是零。机器学习框架通常将边存储为边列表(COO 格式):使用两个数组分别给出每条边的源节点和目标节点。PyTorch Geometric 将其称为 edge_index。

# Triangle edges as edge_index [2, num_edges]
edge_index = [
    [0, 0, 1],   # sources
    [1, 2, 2],   # targets
]

图机器学习的应用

图无处不在:

  • 社交:好友推荐、社区发现
  • 分子:预测分子的性质(原子 = 节点,化学键 = 边)
  • 知识图谱:对实体和关系进行链接预测
  • 网页/引用:排序和分类

快速检查

测试您的图论知识。

回顾

您学习了机器学习所需的图论基础:

  • 图表示为 G = (V, E),由节点和边组成
  • 邻接矩阵 A编码连接关系;X保存节点特征
  • 图拉普拉斯矩阵为 L = D - A
  • 图可以是有向或无向的,也可以是加权或非加权的
  • 应用涵盖社交图、分子图和知识图谱

常见问题解答

「机器学习的图论基础」课时是免费的吗?

是的 — 「机器学习的图论基础」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn AI with Python 课程的其余内容,请升级到 CoddyKit PRO。 Learn AI with Python 课程共包含 4 节课。

「机器学习的图论基础」这节课中我会学到什么?

节点、边、邻接矩阵、图类型、图特征和社交网络表示。 你通过在浏览器中直接运行的动手代码来练习 Learn AI with Python,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Learn AI with Python 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Learn AI with Python 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「机器学习的图论基础」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Learn AI with Python 课中编写并运行代码吗?

能。每节 Learn AI with Python 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 机器学习的图论基础
  2. 图卷积网络(GCN)
  3. 使用 GNN 进行节点分类
  4. 链接预测与图分类
← 返回 Learn AI with Python