python - 通过神经网络进行样本外预测
问题描述
我有一个公司 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)
解决方案
答案取决于您所说的“样本外”到底是什么意思
如果你想预测
expenses
未来 5 个月,因为你有这 5 个月的特征(每个样本 6 个,正如你的模型所期望的那样),那么是的,你可以这样做,方法是使用predict
模型的方法。如果您在接下来的 5 个月的每个样本中没有这 6 个特征,那么您不能进行“样本外”预测,因为您将需要那些用于训练模型的特征,以便模型进行预测。
推荐阅读
- sparql - sparql INSERT 中的 Apache Fuseki 数据集错误
- node.js - 使用 plugin-transform-runtime 后未定义 require
- java - Uipath orchestrator Api- 重定向 uri
- eclipse - 异常情况下eclipse中的代码格式化
- r - 仅保留数据时间戳列中的年份
- angular - Angular [cdkCopyToClipboard] 重复调用
- python - 在 OpenCV Python 中查找旋转矩形
- python - PermissionError: [WinError 5] 访问被拒绝 OS.remove
- php - Laravel - APP_DEBUG 为 false 时出现 500 服务器错误
- .net - Azure 函数不起作用“无法在脚本代码中声明命名空间”