繁体   English   中英

Keras:多类分类

[英]Keras: multiclass classification

我跟随这里这里的例子,对Keras来说是全新的。 它看起来很神奇 - 但我遇到了一些我不理解的东西。

我有一个8级分类问题。 我的训练集有5120行和62列,最后一列是目标变量。

我的目标变量当前被编码为浮点数,因此我将它们转换为整数,然后使用to_categorical将其转换为模型的虚拟矩阵。 结果是numpy.ndarray的形状(num_samples,num_classes + 1)。 谁知道为什么?

这是代码:

import numpy as np
from keras.utils.np_utils import to_categorical

dataset = np.loadtxt("train_pl.csv", delimiter=",")

# split into input (X) and output (Y) variables
X = dataset[:,0:61] #I have 5120 rows. 
Y = (dataset[:,62]).astype(int) #class labels 1 to 8 inclusive

#print Y.shape #(5120,)
#print np.unique(Y) #1 2 3 4 5 6 7 8 

y_binary = to_categorical(Y)

print y_binary.shape #(5120, 9) - why does this have 9 columns?

编辑

我不明白给出答案的原因是我不明白Keras实际上将类标签解释为数字。 例如,因为我的类被标记为1到8,所以Keras看标签'1'并且说'那是1 - 我将它放在单热矢量中的'1'位置,如下所示:0 1 0 0 0 0 0 0 0.它与'2'相同:0 0 1 0 0 0 0 0 0,最多8个。这就是为什么有一个额外的列:处理'0'的情况,这不是' t存在于映射中。 从技术上讲,接受的答案解释说,这只是提供了更多细节。

因为to_categorical将类向量( 从0到nb_classes的整数)转换为二进制类矩阵,用于此处记录的categorical_crossentropy。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM