我在一个文件夹中有300张图片,我用它作为验证神经网络的数据集。
每张图片的标签均为1
或0
。我将图像转换为MATLAB中的矩阵,并将标签转换为1
或0
的300x1向量,对应于矩阵中的每一行图像。
我注意到标签不平衡,这会影响网络。如何为每行图像保持相同的零或一个指示重新排序标签?
这就是我的尝试:
我将每个中的1和0分成一个向量,现在我希望能够连续地在12行中放入至少两个和10个零,但我不知道如何。我用它来分割1和0:
ones = labels(labels(:,1)==1,:)
zeros = labels(labels(:,1)==0,:)
如何重新排列标签以消除不平衡标签的问题?
答案 0 :(得分:0)
这将创建一个索引向量,应该均匀分布您的两组标签,以便它们在每个连续的12个标签集中大致平衡(请注意,这假设您的数据均匀分为12个集合,它在您的示例):
index = [find(labels(:, 1) == 1); find(labels(:, 1) == 0)];
index = reshape(reshape(index, [25 12]).', [], 1);
然后,您将使用此索引重新排序标签数组的行和任何关联数据(如图像数据数组):
labels = labels(index, :);
otherData = otherData(index, :);