我正在一个项目中,用于按日期和时间预测-1到1之间的值。 我有一个包含100个预测值的数据集,并将数据分成70个训练集和30个测试集。 数据包含:日期和时间(2019-04-25 21:00:00)和预测(-1至1值)
当我尝试在火车上致电fit_transform
时,出现错误消息:
“ ValueError:预期的2D数组,取而代之的是1D数组:array = [-1。-1。 1. -1。 -1。 -1。 -1。 -1。 -1。 -1。 -1。 -1。 -1。 1. -1。 1. -1。 1。 1. -1。 1. -1。 -1。 -1。 -1。 -1。 -1。 1. -1。 -1。 -1。 1. -1。 -1。 -1。 -1。 -1。 -1。 1. -1。 -1。 -1。 -1。 -1。 -1。 -1。 1. -1。 -1。 -1。 1. -1。 -1。 -1。 -1。 -1。]。如果数据具有单个功能,则使用array.reshape(-1,1)重整数据;如果数据具有单个特征,则使用array.reshape(1,-1)重整数据 包含一个样本。”
df = pd.read_csv(file_to_read)
df['Date']=pd.to_datetime(df['Date'])
df=df.set_index(['Date'],drop=True)
print(df.head(size))
#Index for prediction
pred_index=int((size*30)/100)
from_specific_time=df.index[pred_index]
split_date=pd.Timestamp(from_specific_time)
df=df['Predict']
train=df.loc[split_date:]
test=df.loc[:split_date]
plt.figure(figsize=(10,6))
ax=train.plot()
test.plot(ax=ax)
plt.legend(['train','test'])
scaler=MinMaxScaler(feature_range=(-1,1))
train_scaler=scaler.fit_transform(train)
test_scaler=scaler.transform(test)
我想通过csv中的确切时间创建一个时间序列,然后预测测试值..我不确定自己做错了什么。 顺便说一句,我正在学习本教程:https://towardsdatascience.com/an-introduction-on-time-series-forecasting-with-simple-neura-networks-lstm-f788390915b
谢谢!
答案 0 :(得分:0)
错误指出它需要2D数组。因此,尝试将数组转换为2D,
train = ([train])
train_scaler = scaler.fit_transform(train)