【发布时间】:2021-01-16 11:16:24
【问题描述】:
我正在做一个简单的二进制文本分类。 步骤大致如下:
- 使用 CountVectorizer() 预处理训练数据
- 构建一个 keras Sequential() 模型
- model.fit(x_train, y_train)
- model.evaluate(x_val, y_val)
- model.predict(x_test)
我被困在第 5 步 - 当我打印预测值时,我得到一个 numpy 数组:
[0.9434484 ]
[0.3787447 ]
...
[0.87870705]
[0.7575223 ]
[0.39714795]]
由于我正在进行二进制分类,并且我的标签是 0 和 1,我希望预测输出是相同的吗?现在它似乎预测了标签 0 和 1 之间的概率,这不是我想要的。我是否需要以某种方式对预测输出进行编码以便它返回正确的标签,还是我在之前的步骤中做错了什么??
【问题讨论】:
-
你用的是什么损失函数?这会有所作为。理想情况下,二分类应该是
binary_crossentropy。 -
@AkankshaAtrey 我确实已经在使用 binary_crossentropy
-
返回值的范围为 0-1,表示 1 为标签的概率
-
@Ruli 我明白这一点。我的问题是,模型有什么方法可以直接预测标签?还是我必须按照其他用户使用 round() 的建议处理它们?
-
@kluster 我已经提供了这样的答案
标签: python keras classification