如我在前一个帖子中提到的,我打算写一系列关于学习大型数据集方法的帖子,包括传统的高维数据和应用在这个领域的拓扑学。有经验的人(假设这个博客中的大多数读者)认为抽象几何对象这个概念应该看起来十分简单,但是解释起来却是很困难的,因此我将集中从术语定义开始。 抽象大型数据集的学习一般从两个名称开始:数据挖掘(Data mining),脱胎于统计学领域,研究组织和总结高维数据的方式,以便于人类更容易理解这些数据;机器学习(Machine Learning),计算机科学的一个分支(特别是人工智能),为了达到让计算机作出决定的目标,寻找计算机组织和总结数据的方式。这两个领域有许多共同点,但是我不会试图对它们加以区分,还有这些方法在不同学科中应用的名词,如生物信息学和化学信息学。还有众人皆知的在市场营销上的应用,它可以让店主提前知道你将购买什么。 收集的数据通常是一组有序的N元组,它们来自科学实验、调查或者零售商收集关于每次你使用信用卡的信息等等。其中一些可以看做是带有标签的——例如特殊实验的代号,其它的如坐标和尺寸通常叫做特征(features),如果这些特征是数字,那么我们可以认为它们是欧式空间的定义向量,这样我们就初次瞥见了几何学。然而,对于高维数据,欧式度量的结果是有问题的,因此我们常常要使用不同的度量方式。欧式度量在分析具有二元特征的数据上也是有问题的,例如,同一有机体不同基因存在的问题。 因此,我们常常要考虑数据点的其他度量法。一个Kernel是一次非线性原始向量空间向更高维向量空间的嵌入过程,它允许在图像空间上使用拉回度量,但是,在实践中,嵌入过程不是用来计算的,仅仅促使度量信息的产生。 考虑使用相似测量(非度量)有时也是有效的:区间从1到0,当两个点相同时用1表示,当不同时用0表示。欧式度量的高斯函数是一个非常流行的相似测量方式。还有非数值数据,可根据具体的情况使用不同的度量法进行分析,暂时先不要关心它。 通常这些数据是从概率分布的向量空间上随机选取的,这种分布应该有一个非常明确的结构,例如已本地化的高余维子流形分布(being localized around a positive codimensional submanifold),但是由于数据中存在噪音,我们一般假设分布支持的是一个开发集,当然,我们不会让这些有限的多个数据点是支持离散分布的,否则将会是一个过度拟合(overfitting)的例子,任何模型都应该避免这种情况的出现。 这里有四个比较具体的研究人员试图了解大型数据集的方法以及一些常用的算法。这些方法和算法有许多变数,但是这个表单至少是个良好的开端。我将在后续的帖子中更详尽的描述他们。 1)投影——找一个从原始向量空间到低维空间(例如水平面)尽可能少的扭曲点与点之间关系的函数,当然,尽可能的线性投影,但是找到一个好的线性投影可不是一个平凡的工作。线性投影最流行的做法似乎是主成分分析法。如拓扑学,不过,我们可以想像线性预测潜在问题,特别是拓扑有趣集。自组织映射图(有时称为Kohonen map)产生一个本地/分段线性投影,似乎更像拓扑声纹。更普遍的是,人们可以尝试投到一个更有趣的拓扑低维流上,这叫做流形学习。 2)特征选择——在一些高维数据中,有许多维度是噪音数据。特征选择是找出那些具有高信噪比的问题。统计学方法可以逐个的检查特征/尺寸,但往往最好是一下子能看到特征的子集。从拓扑学观点,这仅仅是有限的线性投影形式,但是在实际中往往是一个单独的问题类型。特别是人们普遍要投射到两维或者三维的情况,但是对于特征选择,可以选择超过两个或者三个的特征。 这两个问题往往是进入下面两个之一的前奏: 3)分类——这个问题和机器学习密切相关,通常被叫做监督学习:一组带有标签的收集数据,这些标签告诉你它从哪儿来;另一组没有标签的收集数据,决定哪个标签最适合他们,这就是“学习”,因为你可以通过思考标记的数据来进行训练——你告诉计算机在不同情形下对于集合中每个元素应该做什么样的决定。然后电脑必须自己决定在其余的情况下该做什么,通常,人们要基于标签数据建立一个合理的模型,然后抛出原始数据并归纳出基于这个模型新问题。尤其是,经常要权衡是制造一个拓扑的、尖端的模型还是造一个计算廉价的。但是,如上所述,这个模型必须避免过度拟合。有许多不同的方法来解决这个问题。 4)聚类——这是一个基于几何学来分隔数据(未标记)为小数量集的问题。它是数据挖掘的核心问题,尽管在机器学习中它归入非监督学习,即与非标记的数据工作。关于这个的一个流行算法是K-means,它假设概率分布是以K点为中心的高斯总和(a sum of Gaussians),并且尝试去找到这些点。这个算法由于计算效率而闻名,但是常常返回无用结果集。一个更合理做法是形成一个顶点是这些数据点的图形,用边连接点距低于一个给定阈值的点(或者高于一个给定阈值的点)。这个聚类问题转换成了一个图分隔问题——通过较少的边分隔成相对较大的块。 这些是比较实际的问题,尽管不像我们使用在拓扑学上的,但是有可能是一个没有明确及最终答案的问题。相反,每个问题的最佳方法取决于特定的数据集和长期项目分析目标。因此,对于任何的方法,包括拓扑学启发的,在适合的情况下都有可能非常有用。 |