Python 中的股票预测脚本有问题

Having trouble with stock prediction script in Python

我最近发现了这个脚本,你可以找到 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)

啊哈!所以,作为 b*tch 的一小段代码是这样的:

    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... 感叹

model_selection.train_test_split(...)cross_validation.train_test_split(...)return偶数个数组(其实就是2*原来的数组数)。话虽如此,您正在输入一个 X 和 Y 数组,因此您应该期望输出包含 4 个数组。尝试将您的代码更改为 read

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

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