可理解和可解释的机器学习模型

数据挖掘 神经网络 时间序列 金融
2022-03-04 08:01:43

我想找到最佳金融投资组合的公式。

输入:过去 15 年的历史基本面数据。对于每个季度的 3000 家公司,我们有诸如market capcash flowliabilities、等之类的东西assetsrevenue这些输入中的每一个都是一个时间序列,每个季度都有数据点(即一年 4 次)。

目标:我想找到一个公式,给定 3000 家公司,让我可以从最好到最差对它进行排名(排序)。然后我可以选择其中的前 10 个作为最佳投资组合。

例如,人类如何解决这个任务:研究那些历史财务数据几年,并想出一些东西。就像这个非常简单的公式rank = revenue[last]/total-assets[last] + revenue[last]/market-cap[last](寻找高利润且价格不高的公司)。

解决它的机器学习方法:将这些数据点输入神经网络,运行它并希望它会在一段时间后学到一些东西。

问题是我们无法分析神经网络结果,因为它是一个黑匣子。而且我希望以或多或少的紧凑形式查看最终公式,并能够理解它的作用

除了神经网络,还有哪些其他技术可以使用?该模型必须足够复杂,才能将时间序列用作输入。

2个回答

神经网络便于从数据中自动构建特征,但据我所知,这与可解释性不兼容,因为我们不知道特征代表什么。因此,我知道获得可以解释和分析的预测的唯一方法是使用传统模型,在这种情况下,这肯定需要一些特征工程。我会推荐决策树,它们在决策过程中完全透明,即使非专家也能理解。使用这种模型的想法是提供代表随时间演变的特征,例如过去 N 年的最小/最大/平均值、差异电流-N 等,可能针对 N 的几个值。

我建议首先重新考虑并进一步思考您的方法。

这通常不是公司在“以人为本”时采用的方法:

例如,人类如何解决这个任务:研究那些历史财务数据几年,并想出一些东西。就像这个非常简单的公式排名 = 收入[最后一个]/总资产[最后一个] + 收入[最后一个]/市值[最后一个](寻找高利润且价格不太高的公司)。

有充分的理由!因为它没有利用任何现有的知识(例如来自员工或文献)来分析资产,而且它没有得到很好的指导。

出于类似的原因,这不是使用 ML 解决它的有前途的方法:

解决它的机器学习方法:将这些数据点提供给神经网络,运行它并希望它在一段时间后能学到一些东西。

因为在这种情况下,您只需在 ML 算法上抛出一个未明确说明的问题来为您进行思考(无意冒犯,但这对我来说就是这样)。

相反,您首先需要开发的是可以被 ML 方法利用的假设。这可以包括@Erwan 建议的功能设计。例如,您可能假设市盈率是一个重要的自变量,您希望将其作为每个资产的特征包含在内。

因此,最好开发一个假设(或一组假设)是什么造就了一家“好公司”,然后使用 ML 来查看您的数据是否支持您的假设,以及您如何(或是否)可以将其用作预测器。

另一个问题是您想考虑哪种类型的 ML 问题。根据您的描述,这听起来像是一个有监督的问题。但是您没有为您的数据提及任何标签,例如将资产定义为“好”或“坏”,简单地说。这是另一个需要进一步规范的领域。

只有在正确指定您的问题后,您才能决定使用哪种 ML 方法。