怎么把数据集的输出值转换成只含有0,1的标签向量

来源:互联网 发布:舞祭组 知乎 编辑:程序博客网 时间:2024/05/18 02:37

举个例子:

某神经网络有5个输出值,分别对应1-5每个数字的输出概率,先有数据集x(i),其输出值为,y=1223444。但是我们在神经网络中计算代价函数的时候需要将其转换成对应的标签值(即,若x(i)3ylabel=00100),那么该如何转换呢?




思路就是:

先建立一个单位矩阵,然后根据输出值y的,来选择其中对应的行

>> ey=eye(5)%建立一个5x5的单位矩阵(因为输出值有5种)ey =     1     0     0     0     0     0     1     0     0     0     0     0     1     0     0     0     0     0     1     0     0     0     0     0     1>>y=[1 2 2 3 4 4 4]'%y的原始输出值label = ey(:,y)label =     1     0     0     0     0     0     0     0     1     1     0     0     0     0     0     0     0     1     0     0     0     0     0     0     0     1     1     1     0     0     0     0     0     0     0

解释一下label=ey(:,y):

%ey(:,y)等价于ey(:,[1 2 2 3 4 4 4])等价于ey(:,[1;2;2;3;4;4;4])%意思就是从单位矩阵ey中,选取第1,2,2,3,4,4,4列,赋值个label,这样恰好得到便签矩阵
阅读全文
0 0
原创粉丝点击