AIUnlimited
🌳

AI基础

🌱
AI 种子

从零开始

🌿
AI 萌芽

打好基础

🌳
AI 枝干

付诸实践

🏕️
AI 树冠

深入探索

🌲
AI 森林

精通AI

🔨

AI精通

✏️
AI 草图

从零开始

🪨
AI 雕刻

打好基础

⚒️
AI 匠心

付诸实践

💎
AI 打磨

深入探索

🏆
AI 杰作

精通AI

📘

AI实战

📖
理解开源模型

开源模型的基础知识和资源

🎯
问题到模型任务

将业务问题转化为模型任务

⚡
跑通第一个模型

30分钟快速看到第一个结果

🔧
微调与评测

微调模型并评估性能

🚀
应用系统

构建实际AI应用系统

🎨
生成式AI

探索AIGC的开源模型

🤖
Agent智能体

学习Agent框架和MCP工具

📐
基础补充

LLM基础知识和评测

🎓

Claude 学院

🤖
Claude 101 入门

用 Claude 学习 AI 基础知识

💻
Claude Code 101 入门

让 Claude 成为你的结对编程伙伴

🤝
Claude Cowork 入门

与 Claude 协作完成复杂项目

⚙️
Claude 平台 101

使用 Claude API 构建应用

实验室

已加载 7 个实验
🧬神经网络沙盒🤖AI 还是人类?🥋提示工程道场🏁算法竞速🧠AI 知识挑战🏗️系统设计画布
🎯模拟面试进入实验室→
🚀

职业发展

🚀
面试发射台

开启你的旅程

🌟
行为面试精通

掌握软技能

💻
技术面试

通过编程轮次

🤖
AI与ML面试

ML面试精通

🏆
Offer与未来

拿下最好的Offer

立即开始
AIUnlimited

AI 教育平台

沪ICP备18025655号-11

学习

  • AI基础
  • AI实战
  • Claude学院
  • 实验室
  • 职业发展

社区

  • 关于
  • 常见问题

支持

  • 服务条款
  • 隐私政策
  • 联系我们
AI & 工程学习计划›✏️ AI 草图›课程›树与图可视化
🌳
AI 草图 • 中级⏱️ 18 分钟阅读

树与图可视化

具有关系的数据

到目前为止,我们已经研究了行中的数据 - 数组、链表、堆栈和队列都按顺序排列项目。但现实世界并不是线性的。家谱枝繁叶茂。社交网络形成网络。路线图创建了相互连接的路线。

树和图捕捉了这些关系,它们是人工智能一些最强大技术的核心。

树 - 分层数据

树是一种结构,其中每个项目(称为节点)可以有子节点,形成层次结构。顶部有一个特殊的节点,称为根,没有子节点的节点称为叶子。

         CEO
        /    \
      CTO    CFO
     /   \      \
   Dev1  Dev2   Accountant
具有根节点分支到三个级别的子节点的树结构,以及具有互连节点的图
树从根向下流;图连接任意方向的节点。

树木无处不在

  • 文件系统:文件夹包含子文件夹,子文件夹包含文件 - 树。
  • HTML/DOM:每个网页都是一棵嵌套元素树。
  • 组织结构图:经理有报告,他们也可能有自己的报告。
  • JSON 数据:JSON 的嵌套结构本质上是一棵树。

二叉树

二叉树将每个节点限制为最多两个子节点 - 左子节点和右子节点。这个简单的约束可以实现强大的算法。

        8
       / \
      3   10
     / \    \
    1   6    14

二叉搜索树 (BST)

二叉搜索树添加了一条规则:对于每个节点,左子树中的所有值都较小,而右子树中的所有值都较大。

这使得搜索速度更快 - 在每个节点,您知道是向左还是向右:

Find 6 in the BST above:
  Start at 8 → 6 < 8, go left
  At 3 → 6 > 3, go right
  At 6 → Found it!

时间复杂度:平衡树的 O(log n) - 与排序数组上的二分搜索相同的对数魔法。

🧠小测验

在一棵有 1,000,000 个节点的平衡二叉搜索树中,大约需要多少次比较才能找到一个值?

图表 - 万物互联

图通过消除层次结构约束来概括树。它由节点(也称为顶点)和边(节点之间的连接)组成。边缘可以是:

  • 有向(单向:A → B)或无向(双向:A ↔ B)
  • 加权(每条边都有成本/距离)或
第 5 课,共 10 课已完成 0%
←链表与栈

讨论

登录 参与讨论

未加权
Social network (undirected):
  Alice - Bob - Charlie
    \       |
     Diana - Eve

Road map (weighted, directed):
  London →(2h)→ Birmingham →(1.5h)→ Manchester

图表无处不在

  • 社交网络:人是节点;友谊是边缘。
  • 互联网:网页是节点;超链接是边缘。
  • 路线图:交叉路口是节点;道路是具有距离权重的边缘。
  • 推荐系统:用户和产品是节点;相互作用是边缘。
🤯

Facebook 的社交图包含超过 30 亿个节点(用户)和数千亿个边(友谊)。图形算法决定您的动态消息、好友建议和广告定位 - 所有这些都在有史以来最大的图形之一上运行。

AI 如何使用树

决策树

最可解释的人工智能模型之一是决策树。它会提出一系列是/否问题来对数据进行分类:

Is temperature > 30°C?
├── Yes: Is humidity > 70%?
│   ├── Yes: "Don't play tennis"
│   └── No: "Play tennis"
└── No: Is it windy?
    ├── Yes: "Don't play tennis"
    └── No: "Play tennis"

决策树很受欢迎,因为人类可以阅读和理解它们——这在医疗保健、金融和法律人工智能中至关重要,因为可解释性很重要。

🤔
Think about it:

医院使用人工智能来预测患者风险。监管机构要求人工智能解释其决定。为什么决策树可能比深度神经网络更受青睐,即使神经网络稍微更准确?

随机森林

随机森林构建数百个决策树,每个决策树都在略有不同的数据子集上进行训练,然后进行投票。这种集成方法比单棵树更准确、更稳健,而且它仍然是行业中使用最广泛的人工智能技术之一。

AI 如何使用图表

知识图谱

知识图将事实存储为实体之间的关系:

(London) --[capital_of]--> (United Kingdom)
(London) --[located_in]--> (England)
(Big Ben) --[located_in]--> (London)

Google 的知识图为您在搜索结果中看到的信息面板提供支持。当您搜索“大本钟”时,图表会将其连接到英国伦敦和相关地标。

推荐图

Netflix、Spotify 和 Amazon 将用户和项目建模为图表。如果用户 A 和 B 都喜欢项目 X 和 Y,并且用户 A 也喜欢项目 Z,则该图向用户 B 推荐 Z。这就是由图结构提供支持的协作过滤。

🧠小测验

为什么图表比简单列表更适合社交网络建模?

遍历 - 遍历树和图

深度优先搜索(DFS)

DFS 在回溯之前尽可能沿着一条路径探索。可以将其视为探索迷宫,始终从最左边转弯,直到遇到死胡同,然后原路返回。

        A
       / \
      B   C
     / \   \
    D   E   F

DFS order: A → B → D → E → C → F

DFS 使用堆栈(自然地通过递归或显式)。它非常适合:

  • 解决迷宫和谜题
  • 检测图表中的循环
  • 拓扑排序(具有依赖关系的任务排序)

广度优先搜索(BFS)

BFS 在深入之前先探索当前深度的所有邻居。可以把它想象成扔进池塘的一块石头向外扩散的涟漪。

        A
       / \
      B   C
     / \   \
    D   E   F

BFS order: A → B → C → D → E → F

BFS 使用队列。它非常适合:

  • 寻找未加权图中的最短路径
  • 社交网络分析(分离度)
  • 网络爬行(逐级访问页面)
💡

注意上一课中的堆栈和队列如何连接到树和图遍历? DFS使用栈; BFS 使用队列。数据结构相互构建——这就是为什么按顺序学习它们很重要。

🧠小测验

您想要在地图上找到两个城市之间所有道路长度相同的最短路线。您应该使用哪种遍历?

🤔
Think about it:

社交媒体平台衡量“分离程度”——有多少朋友的朋友跳跃将两个人联系起来。哪种遍历算法可以有效地找到两个用户之间的最少跳数?这与“六度分离”的想法有何关系?

🤯

Google 的 PageRank 算法——使 Google 占据主导地位的最初突破——将网络建模为图表。每个网页是一个节点,每个超链接是一个有向边,页面的重要性取决于有多少重要页面链接到该页面。它本质上是图上的随机游走。

要点

  • 树模型分层数据 - 文件系统、HTML 和 AI 决策树都使用树结构。
  • 二叉搜索树通过维护排序的层次结构来实现 O(log n) 查找。
  • 图对互连数据进行建模 - 社交网络、知识库和推荐引擎。
  • DFS(基于堆栈)深入; **BFS*​​(基于队列)的应用范围很广 - 都支持 PageRank 等核心 AI 算法和推荐引擎。