【问题标题】:Classification of Stock Prices Based on Probabilities基于概率的股票价格分类
【发布时间】:2019-06-02 01:44:45
【问题描述】:

我正在尝试构建一个分类器来预测股票价格。我使用一些众所周知的技术指标生成了额外的特征,并将这些值以及过去点的值提供给机器学习算法。我有大约 45k 个样本,每个样本代表一小时的 ohlcv 数据。

这个问题实际上是一个 3 类分类问题:带有买入、卖出和持有信号。我根据每个时间点的 (%) 变化构建了这 3 个类作为我的目标。也就是说:我只将最大的积极 (%) 变化归类为买入信号,相反的归类为卖出信号,其余的归类为持有信号。

但是,将这个 3 类目标呈现给算法会导致买卖分类器的准确性较差。为了改善这一点,我选择根据每个样本的概率手动分配类。也就是说,我根据价格上涨或下跌将目标设置为1或0。 然后,该算法返回一个介于 0 和 1 之间(通常介于 0.45 和 0.55 之间)的概率,用于确定每个样本属于哪个类别的置信度。然后我为这些概率中的每个类选择一些概率界限。例如:我选择 p > 0.53 被归类为买入信号,p

这种方法极大地提高了分类准确率,在某些方面达到了 65% 以上。但是,在没有大量验证集的情况下,我无法想出一种方法来选择这些概率界限。我尝试在 3000 个验证集中找到最佳概率值,这提高了分类准确度,但验证集越大,很明显测试集中的预测准确度正在下降。

所以,我正在寻找的是任何方法,通过它我可以辨别每个训练集的特定决策概率应该是什么,而无需大型验证集。我也欢迎任何其他关于如何改进这个过程的想法。感谢您的帮助!

【问题讨论】:

    标签: time-series classification multiclass-classification stock-data


    【解决方案1】:

    您所经历的称为非平稳过程。市场走势取决于事件发生的时间。

    我用来处理它的一种方法是使用不同时间块的数据构建模型。

    例如,将第 1 天到第 10 天的数据用于训练,将第 11 天的数据用于测试/验证,然后向上移动一天,从第 2 天到第 11 天进行训练,将第 12 天的数据用于测试/验证。

    您可以将所有测试结果保存在一起,以计算模型的总分。这样你就有大量的测试数据和一个能适应时间的模型。

    您还有 3 个参数需要调整,#1 训练使用多少数据,#2 测试使用多少数据,# 每多少天/小时/数据点重新训练数据。

    【讨论】:

    • 关于如何选择决策边界的任何提示?我觉得如果我根据整体数据选择一些,我会遗漏一些东西。 IE。在主要下降趋势中寻找 0.47 的置信度可能会更好,即使总体而言该模型在 0.49 时效果最好。随着更多数据的进入,有什么方法可以调整这些边界以使模型更适合更新的数据?
    • 在对测试数据做出所有预测后,将其用于模拟,并根据模拟选择决策边界。但这仍然是一个整体数字,根据我的模型,我的界限大约是 if > 0.65 buy;如果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多