第 0 章 项目导览与学习路线 在写任何一行代码之前,先回答三个问题:持久同调是什么?Ripser.py 帮你算什么?这套教程怎么读? 0.1 持久同调与 Ripser.py 是什么 拓扑数据分析(Topological Data Analysis, TDA) 研究数据背后的「形状」:连通分量、洞、空腔……这些特征对噪声和变形往往比原始坐标更稳健。 持久同调(Persistent Homology) 是 TDA 的核心工具:你在不同尺度上观察数据的拓扑结构,记录每个特征「何时出现、何时消失」,得到 持久图(Persistence Diagram) 或 条形码(Barcode)。 Ripser.
在写任何一行代码之前,先回答三个问题:持久同调是什么?Ripser.py 帮你算什么?这套教程怎么读?
拓扑数据分析(Topological Data Analysis, TDA) 研究数据背后的「形状」:连通分量、洞、空腔……这些特征对噪声和变形往往比原始坐标更稳健。
持久同调(Persistent Homology) 是 TDA 的核心工具:你在不同尺度上观察数据的拓扑结构,记录每个特征「何时出现、何时消失」,得到 持久图(Persistence Diagram) 或 条形码(Barcode)。
Ripser.py 是 Python 生态中计算 Vietoris-Rips 持久同调的主流库之一:
ripser() 与 sklearn 风格 Rips 类点云 / 距离矩阵 / 图像 │ ▼ Vietoris-Rips 或 Lower-Star 过滤 │ ▼ 持久同调计算(Ripser 引擎) │ ▼ 持久图 dgms + 可选 cocycles │ ▼ 可视化 / 向量化 / 下游机器学习
| 类别 | 选型 | 作用 |
|---|---|---|
| 核心计算 | Ripser.py(C++ Ripser) | 计算持久同调 |
| 数值基础 | NumPy、SciPy | 点云、距离矩阵、稀疏矩阵 |
| 距离度量 | scikit-learn pairwise_distances |
欧氏、曼哈顿、余弦及自定义度量 |
| 可视化 | persim | 持久图、条形码、瓶颈距离 |
| 可选示例数据 | tadasets | 球面、圆环等标准点云 |
| 能力 | 对应章节 |
|---|---|
| 理解单纯形、链复形、同调群与持久同调 | 第 2 章 |
| 搞懂 Vietoris-Rips 过滤如何随半径增长 | 第 3 章 |
用 ripser() / Rips 计算并解读 dgms |
第 4 章 |
| 用 persim 画持久图、比较两次实验 | 第 5 章 |
| 处理距离矩阵、稀疏输入与大规模子采样 | 第 6 章 |
| 对图像/时序做 Lower-Star 过滤 | 第 7 章 |
| 提取代表上循环、切换系数域 Z/pZ | 第 8 章 |
| 参数调优、性能与工程落地 | 第 9 章 |
| 接入 ML 管线、了解 Ripser++ 等方向 | 第 10 章 |
┌─────────────────────────────────────────────────────────┐ │ Ripser.py 能力全景 │ ├──────────────┬──────────────┬──────────────┬─────────────┤ │ 点云 VR │ 距离矩阵 │ Lower-Star │ 上循环 │ │ 过滤 │ 稠密/稀疏 │ 图像/时序 │ 与系数域 │ ├──────────────┴──────────────┴──────────────┴─────────────┤ │ 贪心置换子采样(近似加速) │ ├──────────────────────────────────────────────────────────┤ │ sklearn 风格 Rips + persim 可视化 │ └──────────────────────────────────────────────────────────┘
各模块在后续章节逐块展开,第 2 章先建立数学底座。
路线 A:先会用再懂原理(赶项目)
第 0 章 → 第 1 章 → 第 4 章 → 第 5 章 → 第 9 章 (跑通) (API) (看图) (调参)
路线 B:系统学习(推荐)
第 0 章 → 第 1 章 → 第 2 章 → 第 3 章 → 第 4~8 章 → 第 9~10 章
路线 C:数学背景弱
在第 2 章多花时间,配合附录 A 术语表;第 3 章看 ASCII 图理解 VR 复形即可,不必先推公式。
| 项目 | 关系 |
|---|---|
| C++ Ripser(Ulrich Bauer) | Ripser.py 的计算内核来源 |
| Ripser++ | GPU 加速版,适合超大规模 |
| GUDHI、Dionysus | 其他 TDA 库,API 与过滤类型不同 |
| persim | 持久图可视化与距离,常与 Ripser 搭配 |
| giotto-tda、teaspoon | 高层 TDA + ML 封装,底层可调用 Ripser |
下一章:环境准备与首次跑通——5 分钟内得到你的第一张持久图。