Snap Machine Learning (Snap ML) 库是一个高效、可扩展的机器学习库,能够快速训练广义线性模型,它以嵌套的方式融入了机器学习系统和算法的最新进展,从而反映现代分布式系统的分层架构。

Snap ML 之所以享有盛名,是因为它提供了以下三个主要功能:

  • 分布式训练:构建为数据并行框架,能够扩展和训练超出单台机器内存容量的海量数据集,这对于大规模应用程序至关重要。
  • GPU 加速:已实现专门的解算器,这种解算器不仅利用了 GPU 的强大并行架构,同时考虑到 GPU 内存中的数据局部性,从而避免了大型数据传输的开销。
  • 稀疏数据结构:许多机器学习数据集都是稀疏数据集。因此,在将算法应用于稀疏数据结构时,会对系统中使用的算法进行新的优化。

金融领域用例

  1. 信用卡欺诈检测

    目的是识别欺诈性信用卡交易。假定交易具有某些特征(例如,交易时间或交易金额),我们的任务是创建一个机器学习模型,用于将交易分类为可能的欺诈性交易。为数据科学家提供了包含 285,000 个交易的数据集,并按照 30 个特性(交易时间、金额等)来标记每个交易的特征。另外还提供了这些交易的标签(例如,欺诈或非欺诈)。任务是构建一个模型来预测某个不可见的数据集(即,不用于训练模型且没有标签的数据集)中的欺诈性交易。

    这是一个公共数据集,最近在 Kaggle 数据科学竞赛中使用过此数据集。

  2. 股票波动率预测

    任务是通过该公司和其他公司的 10-K 文本财务报告来预测公司股票的波动率。该语料库包括 1996 年至 2006 年间数千家上市美国公司的 10-K 报告,并度量了每份报告之前和之后 12 个月的股票收益波动率。文本报告已经转换为实数的向量,用实数表示报告中每个词(来自某个大型词典)的出现频率。我们构造了报告之后该时间段的波动率的回归模型。我们应用了线性回归(在较小的数据集上)和岭回归(在较大的数据集上)。

    这是一个公共数据集(我们使用了小型数据集 E2006-tfidf 和大型数据集 E2006-log1p)。

  3. 信用违约预测

    此用例中的任务是预测有信贷的个人是否会违约(无法偿还其信贷)。为数据科学家提供了包含 1000 万个交易的数据集,并按照 18 个特性(包括账龄、账户类型、信用记录、拥有汽车、交易金额和交易类别)来标记每个交易的特征。另外还提供了这些交易的标签(违约或未违约)。任务是构建一个模型来预测某个不可见的数据集(即,不用于训练模型且没有标签的数据集)中的交易是否违约。

    数据集由 IBM 提供。

下面是我们从上述用例中获得的结果的描述。

Snap ML 性能结果
Snap ML 中的岭回归

本文翻译自:Snap ML: Examples of use cases from the financial services sector(2019-05-01)

加入讨论