幽映每白日,清辉照衣裳。这篇文章主要讲述怎么把数据集的输出值转换成只含有0,1的标签向量相关的知识,希望能为你提供帮助。
举个例子:
某神经网络有5个输出值,分别对应1-5每个数字的输出概率,先有数据集x(i)x^(i)x(i),其输出值为,y=[1223444]y=\\beginbmatrix1\\\\2\\\\2\\\\3\\\\4\\\\4\\\\4\\\\\\endbmatrixy=??????????1223444??????????。但是我们在神经网络中计算代价函数的时候需要将其转换成对应的标签值(即,若x(i)的预期输出值为3,则ylabel=[00100]x^(i)的预期输出值为3,则y_label=\\beginbmatrix0\\\\0\\\\1\\\\0\\\\0\\endbmatrixx(i)的预期输出值为3,则ylabel=??????00100??????),那么该如何转换呢?
思路就是:
先建立一个单位矩阵,然后根据输出值y的,来选择其中对应的行
> > ey=eye(5)%建立一个5x5的单位矩阵(因为输出值有5种)
ey =
10000
01000
00100
00010
00001
> > y=[1 2 2 3 4 4 4]%y的原始输出值
label = ey(:,y)
label =
1000000
0110000
0001000
0000111
0000000
解释一下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,1的标签向量】
推荐阅读
- mysql日志
- Unity WebView 插件 | 浏览器插件3D WebView 专栏介绍
- 斯坦福机器学习-第三周(分类,逻辑回归,过度拟合及解决方法)
- Java中的I/O流
- 使用rewrite规则实现将所有到a域名的访问rewrite到b域名
- Scikit-learn——LogisticRegression与SGDClassifier
- linux之pkill命令
- npm常用命令速查表
- Nginx实现多级反向代理客户端IP透传