我做了一个Keras LSTM模型,它读取二进制目标值,并输出二进制预测。然而,这些预测并不是二元的。我的X和Y值示例如下:
X Y
5.06 0
4.09 1
4.72 0
4.57 0
4.44 1
6.98 1
我想预测的是Xt+1是否会高于或低于Xt。如果Xt+1大于Xt,则Xt的Y值为1。我的训练X值是932个样本的形状(932100,1),100个是“回首”序列,1个是特征。我得到的预测是:
Predictions
.512
.514
.513
我想这些可能是概率,因为我的模型准确率在51%左右。有什么办法让它们变成二进制的吗?完整型号代码如下:
# Defining network architecture
def build_model(layers):
model = Sequential()
model.add(LSTM(
input_dim=layers[0],
output_dim=layers[1],
return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(
layers[2],
return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(
output_dim=layers[3]))
model.add(Activation("sigmoid"))
start = time.time()
model.compile(loss="binary_crossentropy", optimizer="rmsprop",metrics=['accuracy'],class_mode="binary")
print("> Compilation Time : ", time.time() - start)
return model
# Compiling model
model = build_model([1, 100, 500, 1])
目前没有回答
相关问题 更多 >
编程相关推荐