首页 文章

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

提问于
浏览
3

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

首字母缩略词:

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 回答

  • 3

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

    • 预测个别股票's future value based on all stock'的历史数据 .

    • 预测股票组合' total future value based on a portfolio and all stocks'历史数据 .

    • 管理投资组合的买卖短期策略 . (何时以及以何种方式买入/卖出哪些股票)

    如果你能做到1)特定股票,可能它是2)的一个很好的起点 . 3)可能是你的目标,但我把它放在最后,因为它更复杂 .

    我会在下面做一些假设,并专注于如何解决1)希望 . :)

    我假设在每个时间戳,你有一个所有可能的功能的向量,例如:

    • 公司A的股票价格(这是目标 Value )

    • 其他公司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的神经网络在这里非常重要 .

  • 0

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

  • 1

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

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

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

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

  • 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然后学习特定用户的交易风格,并用它进行预测 .

  • 0

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

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

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

相关问题