走进大数据之拓扑数据分析方法

简介:

拓扑数据分析(TDA),顾名思义,就是把拓扑学与数据分析结合的一种分析方法,用于深入研究大数据中潜藏的有价值的关系。

相比于主成分分析、聚类分析这些常用的方法,TDA不仅可以有效地捕捉高维数据空间的拓扑信息,而且擅长发现一些用传统方法无法发现的小分类。这种方法也因此曾在基因与癌症研究领域大显身手。

走进大数据之拓扑数据分析方法

1.什么是拓扑数据分析

拓扑学研究的是一些特殊的几何性质,这些性质在图形连续改变形状后还能继续保持不变,称为“拓扑性质”。而在复杂的高维数据内部也存在着类似的结构性质,我们可以形象地称之为数据的形状(特征)。

和通常研究的成对关系相比,这种相互关系的形状之中可能潜藏了巨大的研究价值。要理解数据的形状,就必须求助于拓扑学。TDA所做的就是抽取这种形状并进行分析。

那么到底如何来刻画数据的形状呢?下图是一个简单的例子:

走进大数据之拓扑数据分析方法

左边是一只手的采样数据点,宏观看来像一只手。右边则是经过拓扑数据分析得到的图,有点像一只手的骨架。从左边到右边,就是一次形状重构的过程。这种重构用了很少量的点和边去刻画原始数据集,同时保留了原始数据的基本特征。

2.拓扑数据分析的三个要点

1)TDA的输入可以是一个距离矩阵,表示任意两数据点之间的距离。

它研究的是与坐标无关的形状,完全不受坐标的限制。这也意味着拓扑形状的构建依赖于距离函数的定义,或者说相似度概念的定义。坐标无关的特性,使得TDA可以整合来自不同平台的数据,尽管这些数据的结构不太一样,你只需要给出合理的距离函数。这是TDA的一个优点,通用性。

举个例子,TDA在癌症分析领域的成功,这种通用性是一个重要原因。因为不同癌症数据集的指标、结构都不尽相同,而TDA可以轻松整合。

2)TDA研究的数据形状,可以容忍数据小范围的变形与失真。

想象在一块橡皮上写了一个字母”A”,你用力挤压拉扯这块橡皮,字母”A”虽然有点扭曲变形,但是“一个三角形带两个脚”这样的基本特征仍然存在。从上面“手”的例子也可以看出,TDA对小误差的容忍度很大。

3)如果我们要粗略的描绘一个湖泊轮廓,最简洁的就是使用一个多边形。

拓扑处理的是抽象的形状,最典型的例子就是用六边形来表示圆,这只需要用到6个点和6条边。

TDA使用这种形式压缩数据,用有限的点和边来表示大量的数据,并且保留了数据重要的特征。

3.拓扑数据分析的主要步骤

用一个滤波函数对每个数据点计算一个滤波值。这个滤波函数可以是数据矩阵的线性投影,比如PCA。也可以是距离矩阵的密度估计或者中心度指标,比如L-infinity(L-infinity的取值是该点到离它最远的点的距离,是一个中心度指标)。

数据点按照其滤波值,从小到大被分到不同的滤波值区间里。参照下图中“手”被切成等宽的块。但需要注意的是,相邻的滤波值区间设置有一定的重叠区域,也就是重叠区域的点同时属于两个区间(这一点很重要)。

对每个区间里的数据分别做聚类。

把上一步骤中各区间聚类的得到的小类放在一起,每一个小类用一个大小不同的圆表示。若两个类之间存在相同的原始数据点(这就是区间需要相互重叠的原因),则在它们之间加上一条边。

对上述圆和边组成的图形施加一层力学布局,让其达到平衡,就得到最终的“数据图形”。

下图是一个简单的示意图,便于理解:

走进大数据之拓扑数据分析方法

走进大数据之拓扑数据分析方法

4.案例:ayasdi公司关于NBA球员的研究

有一份关于NBA球员的数据集,这份数据集编码了球员在场上表现的各个方面,包括篮板、助攻、失误、抢断、封锁、犯规、得分等各项指标的每分钟频率。对这份数据集进行拓扑化后,得到了下面这张图。

走进大数据之拓扑数据分析方法

篮球运动员的位置一般分为控球后卫、得分后卫、小前锋、大前锋、中锋。然而在上图的网络中,我们看到了比传统的五个位置更为精细的结构。比如在网络的左侧,守卫被细分成了三个组,攻击守卫、防守守卫、击球守卫。在网络的中下部我们可以看到三个比较小的块,其中有“NBA全明星”(Allstar NBA) 和“NBA全明星第二梯队”(Allstar NBA 2nd Team)。

“NBA全明星”这个组几乎由NBA历史上最优秀的球员组成,“第二梯队”虽然也都是由全能的优秀球员组成但表现上可能不如全明星组。

有意思的是,在全明星组中还有一些不太知名的球员,这些球员也许就是潜在的未来明星球员。


本文作者:杨晓东

来源:51CTO

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
5月前
|
自然语言处理 数据挖掘 数据处理
告别低效代码:用对这10个Pandas方法让数据分析效率翻倍
本文将介绍 10 个在数据处理中至关重要的 Pandas 技术模式。这些模式能够显著减少调试时间,提升代码的可维护性,并构建更加清晰的数据处理流水线。
215 3
告别低效代码:用对这10个Pandas方法让数据分析效率翻倍
|
6月前
|
数据采集 人工智能 算法
数据没洗干净,分析全白干:聊聊大数据里的“洗澡水”工程
数据没洗干净,分析全白干:聊聊大数据里的“洗澡水”工程
244 1
|
2月前
|
数据可视化 大数据 关系型数据库
基于python大数据技术的医疗数据分析与研究
在数字化时代,医疗数据呈爆炸式增长,涵盖患者信息、检查指标、生活方式等。大数据技术助力疾病预测、资源优化与智慧医疗发展,结合Python、MySQL与B/S架构,推动医疗系统高效实现。
|
2月前
|
机器学习/深度学习 搜索推荐 数据挖掘
数据分析真能让音乐产业更好听吗?——聊聊大数据在音乐里的那些事
数据分析真能让音乐产业更好听吗?——聊聊大数据在音乐里的那些事
186 9
|
3月前
|
数据可视化 数据挖掘 大数据
基于python大数据的水文数据分析可视化系统
本研究针对水文数据分析中的整合难、分析单一和可视化不足等问题,提出构建基于Python的水文数据分析可视化系统。通过整合多源数据,结合大数据、云计算与人工智能技术,实现水文数据的高效处理、深度挖掘与直观展示,为水资源管理、防洪减灾和生态保护提供科学决策支持,具有重要的应用价值和社会意义。
|
4月前
|
存储 数据挖掘 大数据
基于python大数据的用户行为数据分析系统
本系统基于Python大数据技术,深入研究用户行为数据分析,结合Pandas、NumPy等工具提升数据处理效率,利用B/S架构与MySQL数据库实现高效存储与访问。研究涵盖技术背景、学术与商业意义、国内外研究现状及PyCharm、Python语言等关键技术,助力企业精准营销与产品优化,具有广泛的应用前景与社会价值。
|
5月前
|
机器学习/深度学习 Java 大数据
Java 大视界 -- Java 大数据在智能政务公共资源交易数据分析与监管中的应用(202)
本篇文章深入探讨了 Java 大数据在智能政务公共资源交易监管中的创新应用。通过构建高效的数据采集、智能分析与可视化决策系统,Java 大数据技术成功破解了传统监管中的数据孤岛、效率低下和监管滞后等难题,为公共资源交易打造了“智慧卫士”,助力政务监管迈向智能化、精准化新时代。
|
7月前
|
存储 关系型数据库 MySQL
大数据新视界 --面向数据分析师的大数据大厂之 MySQL 基础秘籍:轻松创建数据库与表,踏入大数据殿堂
本文详细介绍了在 MySQL 中创建数据库和表的方法。包括安装 MySQL、用命令行和图形化工具创建数据库、选择数据库、创建表(含数据类型介绍与选择建议、案例分析、最佳实践与注意事项)以及查看数据库和表的内容。文章专业、严谨且具可操作性,对数据管理有实际帮助。
大数据新视界 --面向数据分析师的大数据大厂之 MySQL 基础秘籍:轻松创建数据库与表,踏入大数据殿堂
|
机器学习/深度学习 数据采集 算法
Java 大视界 -- Java 大数据机器学习模型在金融衍生品定价中的创新方法与实践(166)
本文围绕 Java 大数据机器学习模型在金融衍生品定价中的应用展开,分析定价现状与挑战,阐述技术原理与应用,结合真实案例与代码给出实操方案,助力提升金融衍生品定价的准确性与效率。
Java 大视界 -- Java 大数据机器学习模型在金融衍生品定价中的创新方法与实践(166)
|
3月前
|
机器学习/深度学习 传感器 分布式计算
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
319 14