识别机器学习数据以进行预测

时间:2015-12-03 23:02:40

标签: machine-learning neural-network

作为一项学习练习,我计划实施一种机器学习算法(可能是神经网络)来预测用户根据买入,卖出和交易时间获得的交易股票。下面的数据集是我制定的测试数据。

首字母缩写词:

tab=millisecond time apple bought
asb=apple shares bought
tas=millisecond apple sold
ass=apple shares sold
tgb=millisecond time google bought
gsb=google shares bought
tgs=millisecond google sold
gss=google shares sold

培训数据:

username,tab,asb,tas,ass,tgb,gsb,tgs,gss
a,234234,212,456789,412,234894,42,459289,0
b,234634,24,426789,2,234274,3,458189,22
c,239234,12,156489,67,271274,782,459120,3
d,234334,32,346789,90,234254,2,454919,2

分类:

a earned $45
b earned $60
c earned ?
d earned ?
  

目标:预测用户收入c& d基于训练数据

我应该在此数据集中添加任何数据点吗?我应该使用替代数据?因为这只是我自己创作的一个学习练习,可以添加任何可能有用的功能。

这些数据需要标准化,还有其他我应该注意的概念吗? 也许不应该将时间用作特征参数,因为股票可以根据时间上下跳动。

5 个答案:

答案 0 :(得分:3)

您可能希望按以下顺序解决问题:

  1. 根据所有股票的历史数据预测个别股票的未来价值。
  2. 根据投资组合和所有股票的历史数据预测股票的总未来价值。
  3. 管理投资组合的买卖短期策略。 (何时以及以何种方式买入/卖出哪些股票)
  4. 如果你能做到1)特定股票,可能它是2)的一个很好的起点。 3)可能是你的目标,但我把它放在最后,因为它更复杂。

    我会在下面做一些假设,并着重于如何解决1)希望。 :)

    我假设在每个时间戳都有一个包含所有可能特征的向量,例如:

    • 公司A的股票价格(这是目标价值)
    • 其他公司B,C,...,Z的股票价格(其他公司可能直接或间接影响公司A)
    • 52周最低价A,B,C,......,Z(长期特征开始)
    • 52周最高价A,B,C,......,Z
    • A,B,C,...,Z的每月最高/最低价格
    • A,B,C,...,Z的每周最高/最低价格(短期特征开始)
    • A,B,C,...,Z
    • 的每日最高/最低价格
    • 是A,B,C,...,Z的收入报告日(真正重要的功能开始)
    • A,B,C,......,Z的收入变化
    • A,B,C,......,Z的利润变化
    • 来自A,...,Z
    • 的社交网络的公司简介的语义得分
    • ......(想象力有帮助)

    我假设你在每个固定的时间间隔都有几乎所有上述功能。

    我认为像lstm这样的神经网络在这里非常重要。

答案 1 :(得分:1)

不要使用用户名和培训数据 - 网络可能会在用户名和$赚取之间建立关联。包括它将考虑用户输出决策,而排除它确保网络将能够预测任意用户赚取的$。

答案 2 :(得分:0)

使用您建议的参数似乎无法预测收益。

主要原因是输入参数与输出值无关。

您输入的值与自身相矛盾 - 考虑到这种情况,对于相同的输入,您可能会期望不同的输出值吗?如果是这样,您将无法预测此输入的任何输出。        让我们走得更远,交易者的收益不仅取决于买卖股票的份额,还取决于每个买入/​​卖出的股票的价格。当我们向神经网络提供两个等于输入但需要不同输出时,这将带来我们的问题。

如何在这种情况下定义'好'参数来预测所需的输出? 我建议首先寻找进行此类估算的人,然后尝试定义他们考虑的参数列表。 如果你成功,你将得到一个巨大的变量列表。 然后你可以尝试用神经网络建立一些模型。

答案 3 :(得分:0)

除了规范化,你还需要扩展。我给你的另一个问题是股票分类。在您的示例中,您提供的Google和Apple被视为blue-chipped个股票。我想澄清一下,你想预测只为谷歌和苹果赚钱或预测两种股票的任何组合?

如果您只想对谷歌和苹果进行预测并提供您拥有的数据,那么您只能应用某种recurrent neural network的规范化和缩放。经常性NN在预测任务方面比使用反向传播训练的简单前馈模型更好。

但是如果您想将训练算法应用于谷歌和苹果,我建议您按照某些标准将训练数据分成若干组。划分的一个例子可以是根据股票的资本化。如果你想进行大写分割,你可以制作五组(例如)。如果你决定制作五组股票,你也可以应用等边编码,以减少NN学习的维数。

您可以想到的另一种分组可以是股票的操作区域。例如农业,技术,医疗,高端,旅游团体。 假设您决定按照提及的方式进行分组(我的意思是农业,技术,医疗,高端,旅游)。然后五组将为NN输入五个条目输入图层(所谓的thermometer encoding)。

让我们说你想养活农业股票。

然后输入将如下所示: 1,0,0,0,0,x1,x2,....,xn

其中x1,x2,....,xn - 是其他条目。 或者如果你应用等边编码,那么你将减少一个维度(我懒得描述它的外观)。

转换神经网络条目的另一个想法可能是温度计编码。

还有一个想法要记住,因为通常人们会在交易股票时放松,因此您的数据集会有偏差。我的意思是如果你只是随机选择10个交易者,他们都可能是输家,你的数据集将不具有完全的代表性。因此,为了避免数据偏差,您应该拥有足够大的交易者数据集。

还有一个细节,你不需要传递给NN用户ID,因为NN然后学习特定用户的交易风格,并用它进行预测。

答案 4 :(得分:0)

对我来说,尺寸不仅仅是数据点。但是,您的观察可能是在线性子空间中,您只需要计算上面显示的矩阵的内核。

如果内核的维度大于数据点的数量,那么您不需要添加更多数据点。

现在还有另外一件事要看。您应该查看分类器的VC维度,不要为数据集添加太多的点。但无论如何,在这个例子中,这主要是理论上的,我只是在开玩笑。

相关问题