请问某人何时使用keras.utils.np_utils.to_categorical
?
我了解它将类向量转换为二进制矩阵,可能在深度学习模型中使用。
但是如果我们仍然继续使用类向量本身,并且可能使用model.predict_classes
- 有什么缺点?
答案 0 :(得分:8)
如果没有以二进制矩阵分布的类,则具有多个类的分类模型不能正常工作。
假设你有三个clasess,向量是这样的:
在将训练数据传递给模型之前,使用to_categorical
转换训练数据。
如果您的训练数据使用类作为数字,to_categorical
会将这些数字转换为适当的向量,以便与模型一起使用。没有它,你不能简单地训练分类模型。
不幸的是,predict_classes
没有记录,因此最好不要使用它。但我想它确实完成了to_categorical
的逆运算。您的模型输出向量,predict_classes
将这些向量转换为人类可读的类。
答案 1 :(得分:4)
我知道这是一个老话题,但我想帮助澄清一下。
您想要to_categorical(甚至在数字标签上)的原因是由算法理解标签之间的关系。
例如,假设您制作了一个颜色分类器。您将红色标记为1,蓝色标记为2,橙色标记为3。
现在,您将它们提供给机器学习算法,以帮助确定您的输入匹配。数学会说橙色高于红色。这显然不是你的意图,但网络会知道橙色更大而不是红色。