Tensorflor 模型的十进制输出应该是布尔值 (1/0)

decimal output for Tensorflor model when it should be a boolean (1/0)

我有一个模型,它接收 2015-2016 年每支 NBA 球队的 boxscore,然后输出他们是赢还是输 (1/0)。这里有一些已经用数字编码的数据点。

(作为参考,WL 列被删除并成为我的 label/target)。

现在我的问题是我的模型给出了范围 (0.49-0.50~) 内的预测,而不是 1 或 0。我试图在 .compile() 内乱搞,因为我相信这很可能是我的问题所在但没有骰子。下面的代码带有一些模型预测。欣赏任何 帮助和反馈

更新编辑:

如果你在做二元分类,你不想使用均方误差作为你的损失函数。所以我首先要改变的是 'binary_crossentropy'.

的损失函数

您可以使用优化器,我看到您正在使用 SGD,但我会从 'adam' 开始。我还会使用 'relu' 作为输入层和隐藏层的激活函数。只有'sigmoid''softmax'的输出层。所有这些都是超参数调整和测试,你可以稍后使用,但这里最主要的是你的损失函数。所以你可能想要这样的东西。

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

model.compile(optimizer='sgd', loss='binary_crossentropy', metrics=['binary_accuracy'])

最后,你不一定会得到0和1。您将得到小数,您可能需要计算出阈值,默认值为 0.5。

所以输出

的任何输出
y >= 0 and y < 0.5 -----> 0
v >= 0.5 and y <=1 -----> 1