我有一个包含两个特征的数据集来预测这两个特征。这里和数据的例子:
raw = {'one': ['41.392953', '41.392889', '41.392825','41.392761', '41.392697'],
'two': ['2.163917','2.163995','2.164072','2.164150','2.164229' ]}
当我使用Keras时(在我的代码下面):
# example of making predictions for a regression problem
from keras.models import Sequential
from keras.layers import Dense
X = raw[:-1]
y = raw[1:]
# define and fit the final model
model = Sequential()
model.add(Dense(4, input_dim=2, activation='relu'))
model.add(Dense(4, activation='relu'))
model.add(Dense(1, activation='linear'))
model.compile(loss='mse', optimizer='adam')
model.fit(X[0:len(X)-1], y[0:len(y)-1], epochs=1000, verbose=0)
# make a prediction
Xnew=X[len(X)-1:len(X)]
ynew = model.predict(Xnew)
# show the inputs and predicted outputs
print("X=%s, Predicted=%s" % (Xnew, ynew))
但是,输出与输入不同,它应该包含两个参数,并且大小相似。
X= latitude longitude
55740 41.392052 2.164564, Predicted=[[21.778254]]
3条答案
按热度按时间qfe3c7zg1#
如果你这样定义你的数据:
将有4个特征、2个样本和1个标签的回归:
对于多个输出,只需像这样设置最终层:
model.add(Dense(n_classes, activation='linear'))
n_classes
可以是任何你喜欢的数字。xkftehaa2#
如果你想有两个输出,你必须在你的输出层中显式地指定它们。例如:
ejk8hzay3#
我认为问题出在你的输入格式上。为什么不使用4作为输入尺寸?
我尝试了不同的格式(numpy)。输出相当不错。
输出: