我的意思是,我知道返回的结果,但是我真正不知道的是以下示例。它给我以下输出:在只有二进制输出[0.238 0.762]
的模型中为[0, 1]
。所以我知道这是给定输入的每个类的概率,但是每个类对应什么值? [0, 1]
或[1, 0]
?
Predict返回最后一层的神经网络输出。这不一定是概率,而仅取决于您在神经网络体系结构中使用的内容。简单的答案是,您可以运行
model.predict(x) > 0.5
在大多数情况下应该可以使用。 NN将进行优化以寻求最佳解决方案,但是其中的所有值都是连续的,因此,除非您的问题很容易分开,否则您几乎不会获得全二进制的输出。
要回答您的问题,[0.238 0.762],除非经过特殊培训可能意味着[0,1]
对于二进制分类,第一列是类别0的概率,第二列是类别1的概率。您可以从here中的keras代码库L257-L260(keras.wrappers.scikit_learn.KerasClassifier
)中进行检查:
# check if binary classification
if probs.shape[1] == 1:
# first column is probability of class 0 and second is of class 1
probs = np.hstack([1 - probs, probs])