通过神经网络进行样本外预测

时间:2020-09-21 12:45:12

标签: python tensorflow neural-network

我有一个虚拟的数据集,其中包含公司在不同费用类别中支出的3年费用。对于Heads列,我采用了虚拟变量。在按日期顺序对数据进行分组之后,我删除了“年和月”列。 下面是一个示例,

Head Year  Month Expense StockPrice
A     2005  1      23      120
A     2006  2      23      121 
B     2006  3      1000    130
C     2006  4      1500    135 
C     2007  1      1400    125 

我已经建立了用于回归的神经网络模型,并将其拟合到我的训练和测试数据中。 我的X数据的形状为(4851,6),而y数据的形状为(4851,1)。我已经能够从模型中获得良好的结果。

现在,我要根据模型对未来5个月的样本进行预测,从而对未来5个月的费用进行预测。我应该如何进行呢?

我安装的模型

model = Sequential()
#model.add(Dense(units = 1, input_dim = 5, activation = 'relu')) 

model.add(Dense(256, input_dim = 6,kernel_initializer='normal', activation = 'relu')) 
model.add(Dense(256, input_dim = 6,kernel_initializer='normal', activation = 'relu')) 
model.add(Dense(256, input_dim = 6,kernel_initializer='normal', activation = 'relu')) 
model.add(Dense(1, activation='linear'))
model.compile(loss = 'mean_absolute_error', optimizer = 'adam')
model.summary()

model.fit(x = X_train, y= y_train, epochs = 100, validation_data = (X_test, y_test
                                                                  ), verbose = 1)

2 个答案:

答案 0 :(得分:0)

您是否尝试创建将日期移到将来的X并在其上调用model.predict(X)

答案 1 :(得分:0)

答案取决于您“超出样本”的确切含义

  1. 如果您要对接下来的5个月的expenses进行预测,因为您具有这5个月的特征(模型期望每个样本6个),那么可以,并且可以做就是使用模型的predict方法。

  2. 如果在接下来的5个月中,每个样本都没有这6个特征,那么您就不能进行“样本外”预测,因为您将需要对模型进行训练的那些特征进行模型预测。

相关问题