我正在研究股票市场决策系统。我目前专注于梯度提升作为解决该问题的最佳机器学习解决方案。
但是,我的数据有两个基本问题,因为它来自股票市场,与它不是 IID 有关。
首先,由于某些指标使用的平均持续时间,一些数据点高度相关。例如,如果一个月前衡量,一只股票的 2 年追踪回报率并没有太大的不同。我的理解是,这需要一个采样(对于集合),我在其中选择及时“遥远”的数据点以使树更加独立。据我目前所知,Matlab 没有使用此标准选择随机子空间的功能。当我之前考虑使用简单的 bagging 时,我想我会自己从自定义子空间构建树并将它们聚合成一个整体,但如果我想进行梯度提升,这将不起作用。现在,在这一点上,我不完全确定“远离”样本是否如此重要。我的直觉是,如果它们是更好的,但即使他们可能不是通过正确调整采样数据的百分比并拥有足够的树,它也会给出相同的结果。我很想知道关于这个问题的任何见解,以及我如何能够在 matlab 中对自定义样本使用 LSboost。(我的一个想法是只创建一个小数字,比如 5-10 个自定义样本,对每个样本使用 LS-Boost,然后对它们进行平均。)
第二个基本问题是来自给定股票的数据与其自身相关/相关。我想了想之后才意识到,这是至关重要的。考虑一下,如果有足够的数据,仅从训练数据或主要从股票 A 预测股票 A 可能比使用整个市场更好。因此,我一直在考虑一个“系统”,我在其中训练股票特定数据、股票组数据(我使用特殊算法对股票进行分组)和整个市场,然后使用计算(我可以详细说明如果感兴趣)确定这些模型中的哪一个更有可能给出更好的结果。例如,如果输入看起来与特定于股票的训练数据非常不同,那么它将使用组或整个市场。
现在,在第二个问题上,问题是组织这个的最佳方式是什么。天真地思考,将类别简单地提供给预测器以指示它正在查看的股票是很好的。然而,根据我对这些算法的了解,我认为这对新数据的结果会很差,因为这个预测器会假设它已经看到了每只股票的全部潜在结果,而很多时候这并不是案子。(假设一只股票只有一年的大涨历史——无论新数据看起来有多么不同,系统都会认为涨势将继续)。所以我觉得我必须做上一段中的事情。
如果您对这些问题和/或如何在 Matlab 或其他方式中解决这些问题有任何见解,我将不胜感激。提前致谢。
最好的,迈克