在基本回归教程的结尾,没有关于如何从输入中获得Y值或预测的说明。
该教程是TensorFlow的基础回归教程
首先,我只有2列时间和销售。
我已使用自己的数据,并希望按月预测未来的销售量。我已经把时间变成了数值。如果我有30个月的数据,我想预测31-35个月。
我发现sets.run函数会产生结果,但是我不知道该怎么做。
column_names = ['Time','Sales']
和
model = keras.Sequential
我的数据适用于本教程。但是我不知道如何得到结果?
以下代码可以工作,并根据实际结果行创建预测。
test_predictions = model.predict(normed_test_data).flatten()
plt.scatter(test_labels, test_predictions)
plt.xlabel('True Values [Sales]')
plt.ylabel('Predictions [Sales]')
plt.axis('equal')
plt.axis('square')
plt.xlim([0,plt.xlim()[1]])
plt.ylim([0,plt.ylim()[1]])
_ = plt.plot([-100, 100], [-100, 100])
我想提供输入作为月份并获得预测。
答案 0 :(得分:0)
如果您要在预测中使用的数据已被规范化,则仅是使用与训练中使用的形状输入参数相同的形状来调用model.predict
函数的情况。
因此对于本教程中的示例,我可以做类似的事情:
test = [{
"Cylinders": -0.84,
"Displacement": -1.0,
"Horsepower": -0.7,
"Weight": -1.1,
"Acceleration": 0.5,
"Model Year": -0.5,
"USA": 0.77,
"Europe": -0.465148,
"Japan": -0.495225
},{
"Cylinders": -0.54,
"Displacement": -2.0,
"Horsepower": -0.1,
"Weight": -1.1,
"Acceleration": 0.5,
"Model Year": -0.5,
"USA": 0.77,
"Europe": -0.465148,
"Japan": -0.495225
}]
testdf = pd.DataFrame(test)
preds = model.predict(testdf)
如果您自己的模型只需要时间和销售,那么我想您可以做到:
test = [{
"Time": -0.7,
"Sales": 0.1
},{
"Time": 1,
"Sales": 1.1
}]
testdf = pd.DataFrame(test)
preds = model.predict(testdf)
如果您要用于预测的数据尚未标准化,则需要首先调用norm
函数。像这样:
test = [{
"Cylinders": 6,
"Displacement": 150,
"Horsepower": 150,
"Weight": 1200,
"Acceleration": 45,
"Model Year": 75,
"USA": 0,
"Europe": 1,
"Japan": 0
},{
"Cylinders": 4,
"Displacement": 90,
"Horsepower": 75,
"Weight": 1200,
"Acceleration": 15,
"Model Year": 77,
"USA": 1,
"Europe": 0,
"Japan": 0
}]
testdf = pd.DataFrame(test)
normed = norm(testdf)
preds = model.predict(normed)
我应该说,您所描述的问题(“销售”和“月”)听起来像是时间序列模型,而不是回归问题,所以也许回归教程并不是这类问题的最佳选择,但却不知道更不可能说