何时在keras中使用to_categorical

时间:2017-05-22 10:20:53

标签: keras

请问某人何时使用keras.utils.np_utils.to_categorical? 我了解它将类向量转换为二进制矩阵,可能在深度学习模型中使用。
但是如果我们仍然继续使用类向量本身,并且可能使用model.predict_classes - 有什么缺点?

2 个答案:

答案 0 :(得分:8)

如果没有以二进制矩阵分布的类,则具有多个类的分类模型不能正常工作。

假设你有三个clasess,向量是这样的:

  • [1,0,0] = 1级
  • [0,1,0] = 2级
  • [0,0,1] = 3级

在将训练数据传递给模型之前,使用to_categorical转换训练数据。

如果您的训练数据使用类作为数字,to_categorical会将这些数字转换为适当的向量,以便与模型一起使用。没有它,你不能简单地训练分类模型。

不幸的是,predict_classes没有记录,因此最好不要使用它。但我想它确实完成了to_categorical的逆运算。您的模型输出向量,predict_classes将这些向量转换为人类可读的类。

答案 1 :(得分:4)

我知道这是一个老话题,但我想帮助澄清一下。

您想要to_categorical(甚至在数字标签上)的原因是由算法理解标签之间的关系。

例如,假设您制作了一个颜色分类器。您将红色标记为1,蓝色标记为2,橙色标记为3。

现在,您将它们提供给机器学习算法,以帮助确定您的输入匹配。数学会说橙色高于红色。这显然不是你的意图,但网络会知道橙色更大而不是红色。