【发布时间】:2020-12-17 12:10:14
【问题描述】:
通常,当我们有一个数据框时,我们会将其拆分为训练和测试。例如,假设我的数据框是这样的:
> 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
我想根据风和温度来预测 y。然后我们进行这样的拆分:
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,那么该方法是否不再有效? (以 LSTM 或 XGBoost 为例)
【问题讨论】:
-
查看时间序列预测。时间序列的训练测试是滚动进行的。对于预测,这也意味着拥有历史。
标签: python scikit-learn xgboost forecasting training-data