【问题标题】:Having trouble with stock prediction script in Python在 Python 中使用股票预测脚本时遇到问题
【发布时间】:2023-03-21 01:27:01
【问题描述】:

我最近发现了这个脚本,你可以找到here,我已经尝试过了,但是它说[TICKER] has not been predicted. 所以,我挖掘了代码,找到了一个对我有帮助的小代码:

for i in stock_list:
        print("Number: " + str(number))
        try:
        predictData(i, 5)
        except:
            print("Stock: " + i + " was not predicted")
        number += 1

然后我对此进行了评论,以了解导致它无法预测的原因。这就是我从中得到的:

Number: 0
AKS
Traceback (most recent call last):
  File "finance.py", line 104, in <module>
    getStocks(200)
  File "finance.py", line 34, in getStocks
    predictData(i, 5)
  File "finance.py", line 86, in predictData
    X, Y, test_size=0.5)
ValueError: too many values to unpack (expected 3)

啊哈!所以,那是一个混蛋的一小段代码是这样的:

    X = np.array(df.drop(['prediction'], 1))
    Y = np.array(df['prediction'])
    X = preprocessing.scale(X)
    X_prediction = X[-forecast_time:]
    X_train, Y_train, Y_test = model_selection.train_test_split(
        X, Y, test_size=0.5)

我认为这不起作用的原因是因为

 X_train, Y_train, Y_test = model_selection.train_test_split(
        X, Y, test_size=0.5)

给出了 4 个输出,但只有 3 个变量。我不知道我应该在这里做什么,因为我试图添加另一个变量,但得到了这个:TypeError: only size-1 arrays can be converted to Python scalars... 叹息

【问题讨论】:

  • finance.py 在哪里?我正在尝试查找 model_selection.train_test_split 的代码
  • 哦,对不起,我就是这么称呼它的。转到 thingy 中的 Github 链接及其 StockStart.py 或其他内容。

标签: python stock


【解决方案1】:

model_selection.train_test_split(...)cross_validation.train_test_split(...) 返回偶数个数组(实际上是 2 * 原始数组个数)。话虽如此,您正在输入一个 X 和 Y 数组,因此您应该期望输出包含 4 个数组。尝试更改您的代码以读取

X_train, X_test, Y_train, Y_test = model_selection.train_test_split(X, Y, test_size = 0.5)

如果您说在输入第 4 个变量时出现错误,我们可以看到回溯吗?我怀疑它不在同一行但我现在无法运行代码所以我不能自己做

【讨论】:

  • 当然。我能做到。
  • 是的,它现在可以工作了。我不知道你是怎么做到的,但它确实有效!我会把东西发给你。
  • 顺便说一句,干得好。
猜你喜欢
  • 2020-10-16
  • 2020-08-26
  • 2021-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多