注意: 虽然 JavaScript 对于本网站不是必需的,但您与内容的互动将受到限制。请开启 JavaScript 以获得完整的体验。

Union Investment 将 Python 用于金融机器学习

引言

Union Investment 是德国最大的资产管理公司之一,为其在德国和其他欧洲国家的客户管理着超过 3500 亿美元的资产。作为一家积极主动的基本面资产管理公司,我们始终致力于进一步改进我们的投资流程。在一个每天都有越来越多数据被创建和可用的世界中,在我们的投资流程中采用新的数据源和信息是我们在业务中取得成功的关键因素。

使用 Python 进行机器学习

将新数据整合到资产管理中的一个有前途的方法是机器学习 (ML),它允许发现金融时间序列数据中存在的模式,并利用这些模式做出更好的投资决策。机器学习使我们能够

  • 识别可能的收益驱动因素,无论是在个股层面还是在整个资产类别(如股票或债券市场)层面,
  • 预测公司层面的关键绩效指标,例如收入,以及
  • 确定我们是否可以从特定数据集中受益并从中为我们的投资流程获取价值。

为了创建用于这些任务的机器学习模型,我们开发了自己的机器学习平台 MALINA – MAchine Learning for INvestment Applications(投资应用机器学习)– 这是一个量身定制的解决方案,用于为金融时间序列数据创建可解释的机器学习模型。MALINA 完全使用 Python 开发,包含超过 3 万行 Python 代码。

在我们的 MALINA 框架中,我们创建了四个解耦模块

  1. 一个机器学习模块,允许我们使用不同的 ML 算法定义和基准测试金融时间序列数据模型,
  2. 一个回溯测试模块,允许我们根据开发的 ML 模型对交易策略进行回溯测试,
  3. 一个模型解释模块,它集成了我们自己的解释方法,用于 ML 模块中可用的一些机器学习算法,以及
  4. 一个基于网络的自定义用户界面,允许用户定义和基准测试模型,而无需实际编写代码。

特别是模块 3,开发用于解释我们机器学习模型的新方法,对我们来说至关重要。这个模块允许我们打开机器学习的黑箱,理解我们的模型及其预测,这进一步帮助我们发现这些模型学到的模式。

Screenshot of our web-based user interface powered by Python and the Django framework.

图:由 Python 和 Django 框架支持的基于网络的自定义用户界面截图。

Python 卓越的生态系统

除了 Python 语言本身,使用 Python 还能让我们大量依赖 Python 生态系统中成熟的开源库,例如

  • Pandas,它提供了一个强大而 robust 的框架来管理和分析数据,
  • Scikit-Learn,它是 Python 中机器学习的“首选”软件包,并被许多人认为是所有机器学习的行业标准,
  • statsmodels 和 XGBoost,它们扩展了 scikit-learn 的功能集,以提供高级统计模型和梯度提升,
  • Django,一个优秀而全面的框架,用于开发我们构建基于网络的自定义用户界面的 Web 应用程序,以及
  • Sphinx,这是一个优秀的软件包,用于从 Python DocStrings 创建文档,并允许我们自动保持文档与代码开发同步。

所有这些软件包的优点是众所周知且广泛建立,这意味着可以为每个软件包在线找到大量的文档和讨论。此外,这些软件包作为开源软件可用意味着我们可以轻松深入到现有代码中。例如,对于 Scikit-Learn 提供的机器学习算法,这意味着我们能够开发自己的扩展,例如定制的解释方法——这在使用专有机器学习框架时是不可能实现的。

此外,Python 生态系统特性中许多较小的软件包在开发 MALINA 时非常有用,并为我们节省了大量时间。这里的一个特别例子可能是 joblib,它使得以平台无关的方式并行计算变得极其容易,而无需处理底层操作系统的细节。

最后,跨平台功能意味着我们可以轻松地将 MALINA 移植到不同的平台。因此,虽然在开发时我们可以坚持使用公司常用的 Windows 机器,但我们可以轻松切换到 Linux 系统,以便在生产环境中使用我们的 MALINA 框架。

结论

机器学习在分析和预测金融时间序列方面提供了令人兴奋的新可能性。由于金融市场的性质,开箱即用的机器学习工具并不总是按预期工作。更定制化和适应性的方法可以提供更深入的见解。

因此,Union Investment 使用 Python 开发了专有的机器学习工具 MALINA。该工具使我们能够为金融应用开发机器学习模型,并使用专有解释方法来更好地理解这些模型。

Union Investment 认为 Python 及其各种库的应用非常适合开发定制的机器学习工具,以应对金融时间序列带来的复杂挑战。

关于作者

Christian Mandery 博士目前在 Union Investment 担任数据科学家/投资组合经理。作为投资组合管理中量化和智能数据团队的成员,他主要负责机器学习模型在投资决策中的应用以及这些模型的解释。Christian 拥有德国卡尔斯鲁厄理工学院 (KIT) 的计算机科学文凭和工程博士学位。

Nikolas Gerlich 目前在 Union Investment 担任高级数据科学家。他负责在投资组合管理部门内建立数据科学能力。这包括整合新的数据源和采用新的量化方法,例如机器学习,以增强投资决策。Nikolas 在图宾根大学和牛津大学学习经济学和统计学。