使用LinearRegression预测价格数据

时间:2018-03-15 07:08:49

标签: python machine-learning scikit-learn

我有自2017-01-01以来的GOLD价格(XAUUSD)数据。我的数据采用以下格式:

Timestamp,Close,Open,High,Low
1483304400,1150.52,1150.55,1152.66,1149.66
1483304700,1158.91,1150.71,1163.61,1145.68
1483305000,1163.8,1158.88,1168.23,1155.95

我正在加载整个数据,直到最后一行(不包括最后一行)到X从0开始。到y,只加载Timestamp列以外的整个数据,直到最后一行数据但从1开始(排除第一个数据,包括最后一个数据)。现在我已经转移了数据。例如,y包含今天的价格,而X包含昨天的价格。 X_real是预测。这是最后的数据,我将预测真正的未知数据,在这种情况下明天的价格是:

df = pd.read_csv("./data/xauusd.csv")
X = df[:-1]
X_real = df[-1:]
y = df[["Close", "High", "Low"]][1:]

这是令人困惑的部分。我正在使用LinearRegression模型,但我不确定我是否正确使用它,我不确定这是否是最好的模型。我在这做了什么:

lm = LinearRegression()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
lm.fit(X_train, y_train)
acc = lm.score(X_test, y_test)
lm.fit(X, y)
prd = lm.predict(X_real)

在最后两行中,我拟合X,y(训练)并预测包含今天价格的X_real。准确度高达0.99。然而,预测甚至不是很接近。

我使用错误的方法或错误的方法吗?难道我做错了什么?或者它意味着什么?例如,我只能获得培训部分的准确性,我知道它必须是这样,但有没有办法获得真实数据的准确性?我是否需要以某种方式选择最后一种预测方法来使用它从训练中学到的东西? fit()应该这样做,但我不确定!

最后一件事是我认为我不需要使用train_test_split()方法来预测新值吗?

由于

0 个答案:

没有答案