在机器学习领域,拓扑机器学习是一个值得关注的方向。它通过将代数拓扑学中的元素与统计学习相结合,捕捉到了传统机器学习方法容易忽略的全局属性。然而,很多初学者可能会遇到困惑,不知道如何入门。本文将介绍拓扑机器学习的基本概念和工作流程,特别是如何利用giotto-learn这个工具进行应用。
拓扑机器学习是一种技术,它融合了代数拓扑和统计学习。通过关注数据的整体结构,如形状和连接性,它可以发现传统机器学习方法所忽视的重要特征。例如,在药物设计和图分类等领域,这种技术已经取得了显著成效。
持久同源性是拓扑机器学习中的关键概念。它用来衡量不同尺度下拓扑不变量的存在,如连通分量、洞和空腔。这些不变量的“出生”和“死亡”可以通过持久性图来表示,这是一种生成新特征的有效方法,这些特征可以直接用于下游机器学习任务。
为了展示giotto-learn的实际应用,我们使用了Kaggle上的CHAMPS数据集。该数据集的任务是预测分子中两个原子之间的磁性相互作用,也就是所谓的“标量耦合常数”。由于耦合常数是连续值,所以这是一个回归问题。
我们重点关注数据集中100个最大的分子,这些分子包含了五种不同类型的耦合。通过分析,我们可以看到不同类型的耦合强度。
拓扑机器学习的第一步是从训练数据中构建持久性图。在giotto-learn中,有两种主要方法:
点云表示:将每个观测值看作空间中的一个点,并使用距离度量计算成对观测值之间的距离。例如,单个分子的点云可以是每个原子相对于所有原子平均位置的坐标。
间隔矩阵表示:将观测值之间的距离视为一种度量,即使它不一定符合传统的度量标准。例如,如果我们将单个分子视为一个图,那么两个原子之间的距离可以是它们之间最短路径的边数。
虽然持久性图提供了丰富的数据描述,但它们不能直接用于机器学习任务。因此,需要将它们转化为适合机器学习的形式。在giotto-learn中,可以通过嵌入或核方法将持久性图转化为向量形式,以便进一步处理。
有了拓扑特征,接下来就是训练回归模型。在本例中,我们使用scikit-learn进行回归。通过对模型进行5倍交叉验证,我们比较了包含和不包含拓扑特征的情况,发现拓扑特征确实提高了模型的表现。
最终,我们评估了模型在Kaggle竞赛中的表现。结果显示,加入拓扑特征后,模型的性能得到了显著提升,特别是在某些类型的耦合上,提升了大约3.6%。
本文介绍了如何利用giotto-learn进行拓扑机器学习,并展示了它在实际应用中的效果。通过关注数据的整体结构,拓扑机器学习可以提供传统方法无法捕捉到的新见解。希望本文能帮助大家更好地理解和应用这一强大的工具。