什么是拓扑机器学习以及完成其功能的Python库giotto-learn
作者头像
  • 雷科技
  • 2020-01-06 07:41:43 8

引入

在机器学习领域,拓扑机器学习是一个值得关注的方向。它通过将代数拓扑学中的元素与统计学习相结合,捕捉到了传统机器学习方法容易忽略的全局属性。然而,很多初学者可能会遇到困惑,不知道如何入门。本文将介绍拓扑机器学习的基本概念和工作流程,特别是如何利用giotto-learn这个工具进行应用。

什么是拓扑机器学习?

拓扑机器学习是一种技术,它融合了代数拓扑和统计学习。通过关注数据的整体结构,如形状和连接性,它可以发现传统机器学习方法所忽视的重要特征。例如,在药物设计和图分类等领域,这种技术已经取得了显著成效。

主要技术——持久同源性

持久同源性是拓扑机器学习中的关键概念。它用来衡量不同尺度下拓扑不变量的存在,如连通分量、洞和空腔。这些不变量的“出生”和“死亡”可以通过持久性图来表示,这是一种生成新特征的有效方法,这些特征可以直接用于下游机器学习任务。

使用giotto-learn进行拓扑机器学习

数据准备

为了展示giotto-learn的实际应用,我们使用了Kaggle上的CHAMPS数据集。该数据集的任务是预测分子中两个原子之间的磁性相互作用,也就是所谓的“标量耦合常数”。由于耦合常数是连续值,所以这是一个回归问题。

数据分析

我们重点关注数据集中100个最大的分子,这些分子包含了五种不同类型的耦合。通过分析,我们可以看到不同类型的耦合强度。

特征提取

拓扑机器学习的第一步是从训练数据中构建持久性图。在giotto-learn中,有两种主要方法:

  1. 点云表示:将每个观测值看作空间中的一个点,并使用距离度量计算成对观测值之间的距离。例如,单个分子的点云可以是每个原子相对于所有原子平均位置的坐标。

  2. 间隔矩阵表示:将观测值之间的距离视为一种度量,即使它不一定符合传统的度量标准。例如,如果我们将单个分子视为一个图,那么两个原子之间的距离可以是它们之间最短路径的边数。

从持久性图到机器学习特征

虽然持久性图提供了丰富的数据描述,但它们不能直接用于机器学习任务。因此,需要将它们转化为适合机器学习的形式。在giotto-learn中,可以通过嵌入或核方法将持久性图转化为向量形式,以便进一步处理。

训练模型

有了拓扑特征,接下来就是训练回归模型。在本例中,我们使用scikit-learn进行回归。通过对模型进行5倍交叉验证,我们比较了包含和不包含拓扑特征的情况,发现拓扑特征确实提高了模型的表现。

结果评估

最终,我们评估了模型在Kaggle竞赛中的表现。结果显示,加入拓扑特征后,模型的性能得到了显著提升,特别是在某些类型的耦合上,提升了大约3.6%。

总结

本文介绍了如何利用giotto-learn进行拓扑机器学习,并展示了它在实际应用中的效果。通过关注数据的整体结构,拓扑机器学习可以提供传统方法无法捕捉到的新见解。希望本文能帮助大家更好地理解和应用这一强大的工具。

    本文来源:图灵汇
责任编辑: : 雷科技
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
拓扑机器以及完成功能giottoPython学习什么learn
    下一篇