Python 预测第二天无列车和测试拆分

Python 预测第二天无列车和测试拆分,python,scikit-learn,xgboost,forecasting,training-data,Python,Scikit Learn,Xgboost,Forecasting,Training Data,通常,当我们有一个数据帧时,我们将其分为训练和测试。例如,假设我的数据帧是这样的: > df.head() Date y wind temperature 1 2019-10-03 00:00:00 33 12 15 2 2019-10-03 01:00:00 10 5 6 3 2019-10-03 02:00:00 39 6 5 4 2019-10-03 03:00:00

通常,当我们有一个数据帧时,我们将其分为训练和测试。例如,假设我的数据帧是这样的:

> df.head()

          Date           y  wind temperature           
1   2019-10-03 00:00:00 33   12    15
2   2019-10-03 01:00:00 10   5     6
3   2019-10-03 02:00:00 39   6     5
4   2019-10-03 03:00:00 60   13    4
5   2019-10-03 04:00:00 21   3     7
df_train = df.loc[df.index <= split_date].copy()
df_test = df.loc[df.index > split_date].copy()
X1=df_train[['wind','temperature']]
y1=df_train['y']
X2=df_test[['wind','temperature']]
y2=df_test['y']
from sklearn.model_selection import train_test_split
X_train, y_train =X1, y1
X_test, y_test = X2,y2
model.fit(X_train,y_train)
我想根据风和温度来预测y。然后我们进行如下拆分:

> df.head()

          Date           y  wind temperature           
1   2019-10-03 00:00:00 33   12    15
2   2019-10-03 01:00:00 10   5     6
3   2019-10-03 02:00:00 39   6     5
4   2019-10-03 03:00:00 60   13    4
5   2019-10-03 04:00:00 21   3     7
df_train = df.loc[df.index <= split_date].copy()
df_test = df.loc[df.index > split_date].copy()
X1=df_train[['wind','temperature']]
y1=df_train['y']
X2=df_test[['wind','temperature']]
y2=df_test['y']
from sklearn.model_selection import train_test_split
X_train, y_train =X1, y1
X_test, y_test = X2,y2
model.fit(X_train,y_train)
df\u train=df.loc[df.index拆分日期].copy()
X1=df_系列[[风','温度]]
y1=df_列['y']
X2=df_试验[[风','温度]]
y2=df_测试['y']
从sklearn.model\u选择导入列车\u测试\u拆分
X_列,y_列=X1,y1
X_检验,y_检验=X2,y2
模型拟合(X\U系列、y\U系列)

然后我们预测我们的测试数据。然而,这在测试数据框中使用了风和温度的特征。如果我想在不知道明天每小时的温度和风的情况下预测(未知)明天的y,那么该方法是否不再有效?(例如,对于LSTM或XGBoost)

训练模型的方式是,无论顺序如何,每一行都被视为一个独立的样本,即观察到的值是较早还是较晚。如果您有理由相信时间顺序与根据风速和温度预测
y
有关,则需要更改模型


例如,您可以尝试添加另一列,其中包含一小时前的风速和温度值(将其移动一行),或者,如果您认为
y
可能取决于工作日,请从日期开始计算工作日,并将其添加为输入功能。

谢谢您的回答!我明白你的意思,但由于气温(和风)每天都会发生剧烈变化,我想这些滞后现象在这种情况下不会太好。看看时间序列预测。时间序列的列车测试是在滚动的基础上进行的。对于预测来说,它还意味着拥有历史。