1. 问题背景
假设我手里有个数据集,每个类别的个数是不一样的。现在我想把数据整理成每个类别的个数都是相等的,应该怎么处理?
2. histc函数
matlab里面的histc函数可以统计每个范围内元素的个数。当“元素范围”为1的时候,就可以统计每个元素出现的个数了。
假设我现在有数据的标签test_label,可以先用histc函数统计出每个元素出现的个数,然后找出哪个类别的样本个数最少。再把样本比较多的类别多出来的样本去掉。
histc函数原型
numPercClass = histc(test_label, range); %统计每一类的样本总数
比如:test_label 是 [1,1,1,2,2,3], range是[1,2,3]
那么 :numPercClass = [3,2,1]。
表示:
[1,2) 范围内的元素有三个
[2,3) 范围内的元素有三个
[3,3] 范围内的元素有三个
结果:

本文介绍如何使用MATLAB的histc函数统计不同类别样本数量,并通过该函数调整不平衡的数据集,确保每个类别的样本数相同。
927

被折叠的 条评论
为什么被折叠?



