keras如何解决这些问题的相关任务?

时间:2019-01-10 15:11:12

标签: keras

有两个相对的问题。

所有2个问题都有多个答案。

question1: please mark the brands you know below

a)bland1 b)bland2 c)bland3 d)bland4

如果用户标记a)和c),则结果数组为[1,0,1,0]

question2: please mark the brands you have bought below

a)bland1  c)bland3

如果用户标记为a),则结果数组为[1,Nan,0,Nan](因为在第1题中未选择bland2和bland 4,所以不会显示b和d)。 所以最后一个数组是

[[1,0,1,0],
[1,Nan,0,Nan]]

我想通过预测来生成1000条记录,我需要生成的数据服从规则,但是结果很差,acc仅为0.25

_m = Sequential()

_m.add(Dense(5000,activation='relu',input_shape=(4,)),)

_m.add(Dense(500,activation='relu'))

_m.add(Dense(len(outs),activation='sigmoid'))

_m.compile(loss='binary_crossentropy',optimizer='adam',metrics=
['accuracy'])

_m.fit(x_train,y_train, batch_size=100,epochs=1000,verbose=0)

score = _m.evaluate(x_test,y_test,100)

请帮助改进它,我应该使用lstm吗?

1 个答案:

答案 0 :(得分:0)

放入Nan没有任何意义。您应该将其替换为0。您可能会错误地使用outs。我建议将outs设计为以下两个问题的组合:即知道

  • Q1的答案是[a1,b1,c1,d1]
  • Q2的答案是[a2,b2,c2,d2]

那么出局应该是[2 ^ a1 + a2、2 ^ b1 + b2、2 ^ c1 + c2、2 ^ d1 + d2]。

换句话说,您的模型将生成三元分类而不是二进制。

是否使用LSTM取决于您的输入:是时间序列数据,还是可以将其视为时间序列。