拓扑学——探寻大数据的内在模式

简介:

大数据正被媒体、工业和政府所瞩目。公司和实验室不停地产生大量的数据,从气象资料到携带电话的使用到医疗记录,与每件事相关。而每一套数据又和成百个变量相关。


这些数据量之大、规模之复杂,用传统的方式来寻找数据之间的模式已不能有太多进展。数据分析常常被捧为灵丹妙药,它无疑具有潜力可被大量应用于解决曾经很棘手的问题。但是,我们必须明白我们在找什么。


回归直线显示一组人的身高和体重之间的关系


统计学101课程里,总有一两个讲座是关于线形回归——寻找一组散落在平面里的点状数据之间的最佳直线。这样的图形经常在一些关于气候变化的文章里出现,譬如,当气温和其它天气数据相对时间作图的时候,或者在经济预测里以就业或GDP历史数据来推测未来。


可是,万一这些点状数据不是沿着直线排列,而是形成诸如圆形之类的分布呢?


一组圆环上的点集(左)和最佳适匹配直线(右)


显然,回归在这种时候没有用。但这一点,只有当我们可以看到那些点形成了圆形时才知道。

现在想象一下,一组点分布在一个更高维空间里的圆。在三维空间,我们也许能看到圆环,但如果我们有更多的变量,正如经常在检查大型数据集时发生的一样,我们就有麻烦了。我们怎么能检测出圆?或者,更进一步:我们怎么能告诉计算机找出这个圆?

这些是伴随着大数据的增长被提出的问题 ,代数拓扑能提供某些答案。


球体和立方体在我看来是一样

1
如何从空间理解大数据

拓扑有时被称为“橡胶板几何”。对于拓扑学家来说,球体和立方体是相同的东西。 试想一下,由柔性材料制成的立方体,插入吸管并吹气,这个立方体后会被吹成一个球体。像这样的操作被称为“变形”(deformation),如果两个物体之间一个可变形为另一个,则它们被认为是相同的。

拓扑学家们通过分配被称为“不变量”(invariant)的代数对象来学习空间。这些不变量可能如整数一般简单,但通常是更复杂的代数结构。对数据分析而言,选择的不变量是“持续同调”(persistent homology)[小编注:在不同到空间分辨率下计算空间到拓扑特征的一种方法。“调”读作4声tiáo]。

普通同调测量空间中不能被填充的“洞”的数目。让我们再来思考一个球体。如果我们在球面上绘制环路,它形成一个表面上的二维圆盘;也就是说,我们可以在球体上填满任何圆环,因此不存在二维的“洞”。与此相对,球体本身的表面形成了一个不能填充的三维“洞”。


一个球体表面的闭环;它连成一个圆盘,因此不加入第一阶Betti数

使用普通同调来做数据分析的问题是,若计算一组离散数据点的同调性,我们会失望——没有洞,只有不连续点的集合。第零阶Betti数会计算有多少个点,但是,因为这样的数据集里没有环形或球体,高阶Betti数将全部为0。这正是持续同调进入故事的地方。

我们需要把离散点的集合连接在一起。试想,放一个半径为r的小球来包围我们数据集里的每一点。如果r非常小,那么没有球会相交,该集合里球的Betti数是和离散集里的Betti数一样。


包围数据点的半径增大的小球


但是,如果我们允许半径r增长,那么这些球将开始接触,我们可能会得到非平凡的更大的Betti数。在动画中,我们看到一旦r到达一定的阈值,环绕顶部三个点的小球相交成对,并包含连接三个点的三角形。此外,我们不能填充三角形,因为有一个小的空白在中间。这意味着在这一阶段的一阶Betti数为1。但是,当r变得更大一点,所有三个球一旦相交后我们可以填充三角形,一阶Betti数下降到第0


和以上数据相关的条形码。在顶端的零阶Betti数从4降到0,在底部的第一阶Betti数显示了两个短暂的一维同调的出现。

持续同调在半径增长时跟踪这些数字,这些数字相对参数r的图形被称为“条形码”。长条形显示数据里的特征可能很显著(它们持续存在,该术语由此而来)。短条形通常产生于数据中的噪声,因此可以被忽略不计(或不能被忽略,此时数据的上下文很重要)。


因此,我们所做的是将一个离散点集转为更加复杂空间的序列(每个空间对应一个r),以期比采用简单的线性回归更好地对数据进行建模。


当小球半径增大时,一个圆圈在空间里持续存在

上面动画里,显示了如何能以这种方式建模一个圆上的几个点。我们已经抑制了点集周围的小球,当两点的相关球重叠时,连接两点;当三个点的相关球重叠时,形成三角形;依此类推。一个圆圈持续相当长的时间,导致我们猜测我们的数据位于一个圆圈附近。


拓扑数据分析带来一个新的数字图像压缩方法

2
理论之上的应用

斯坦福大学的Gunnar Carlsso是拓扑数据分析的先驱之一。他的小组的第一个成功研究之一,是发现了自然图像的空间拓扑。这组数据含有从黑白数码照片里采样的几百亿个3×3像素的小块。每个像素由一个0到255的灰度值的数值描述,每个3×3小块对应一个9维空间中的点,每个坐标被赋予其相关像素的灰度值。在过滤掉常量小块和进行归一化处理后,这个空间就在一个7维球体内。乍一看,数据集似乎填充了球体;但是,将注意力限制在点更紧密聚集的区域,结构就自然呈现出来。



一个Klein瓶像一个Mobius带:它没有边界


鉴于这一成功,Carlsson和他的一些同事成立了AYASDI,一个拥有着不断增长的银行、金融、政府等行业客户花名册的公司。他们使用这些以及其它技术来分析糖尿病、乳腺癌和心肺疾病数据。结果令人鼓舞——有着高存活率的、用传统的统计方法不可见的某些患者亚组,也许可通过这些技术被发现。


但是,这些方法真正的成功前景,在于定制针对个人的治疗和解决方案方面的可能性。大型数据集的分析使我们看到,例如,一度被认为是80%有效的药物,事实上是对80%可通过某个标记识别的患者有100%的疗效 。拓扑数据分析,提供了另一种工具来推进这样的分析,通常是识别之前被隐藏的特征。


原文发布时间为:2015-06-29

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
5月前
|
存储 Java 大数据
Java 大视界 -- Java 大数据在智能家居能源消耗模式分析与节能策略制定中的应用(198)
简介:本文探讨Java大数据技术在智能家居能源消耗分析与节能策略中的应用。通过数据采集、存储与智能分析,构建能耗模型,挖掘用电模式,制定设备调度策略,实现节能目标。结合实际案例,展示Java大数据在智能家居节能中的关键作用。
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
520 6
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
297 2
|
消息中间件 监控 数据可视化
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
472 2
|
分布式计算 资源调度 大数据
大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖(一)
大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖(一)
360 0
|
分布式计算 资源调度 大数据
大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖(二)
大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖(二)
305 0
|
分布式计算 资源调度 大数据
【决战大数据之巅】:Spark Standalone VS YARN —— 揭秘两大部署模式的恩怨情仇与终极对决!
【8月更文挑战第7天】随着大数据需求的增长,Apache Spark 成为关键框架。本文对比了常见的 Spark Standalone 与 YARN 部署模式。Standalone 作为自带的轻量级集群管理服务,易于设置,适用于小规模或独立部署;而 YARN 作为 Hadoop 的资源管理系统,支持资源的统一管理和调度,更适合大规模生产环境及多框架集成。我们将通过示例代码展示如何在这两种模式下运行 Spark 应用程序。
743 3
|
存储 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
200 1
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
|
SQL 存储 算法
基于对象 - 事件模式的数据计算问题
基于对象-事件模式的数据计算是商业中最常见的数据分析任务之一。对象如用户、账号、商品等,通过唯一ID记录其相关事件,如操作日志、交易记录等。这种模式下的统计任务包括无序计算(如交易次数、通话时长)和有序计算(如漏斗分析、连续交易检测)。尽管SQL在处理无序计算时表现尚可,但在有序计算中却显得力不从心,主要原因是其对跨行记录运算的支持较弱,且大表JOIN和大结果集GROUP BY的性能较差。相比之下,SPL语言通过强化离散性和有序集合的支持,能够高效地处理这类计算任务,避免了大表JOIN和复杂的GROUP BY操作,从而显著提升了计算效率。
|
SQL 存储 算法
基于对象 - 事件模式的数据计算问题
基于对象-事件模式的数据计算是商业中最常见的数据分析任务之一。这种模式涉及对象(如用户、账户、商品等)及其相关的事件记录,通过这些事件数据可以进行各种统计分析,如漏斗分析、交易次数统计等。然而,SQL 在处理这类任务时表现不佳,特别是在有序计算方面。SPL 作为一种强化离散性和有序集合的语言,能够高效地处理这类计算,避免了大表 JOIN 和大结果集 GROUP BY 的性能瓶颈。通过按 ID 排序和分步计算,SPL 能够显著提高计算效率,并支持实时数据处理。