首页 > 解决方案 > 通过神经网络进行样本外预测

问题描述

我有一个公司 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)

标签: pythontensorflowneural-network

解决方案


答案取决于您所说的“样本外”到底是什么意思

  1. 如果你想预测expenses未来 5 个月,因为你有这 5 个月的特征(每个样本 6 个,正如你的模型所期望的那样),那么是的,你可以这样做,方法是使用predict模型的方法。

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


推荐阅读