我有一组不平衡的数据用于在 CNN 神经网络上进行训练。我想计算与每个标签的频率成正比的类权重,以便在计算反向传播项时增强频率较低的标签,以便它们得到很好的表示。
到目前为止我做了什么:我有一个列表 A,其中包含每个标签的频率。
A=[1009,2910,4014,152,605]
所以我做了以下 -
class_weights_new=1/(A/np.min(A))
这产生了一个权重列表,这些权重减少了与标签频率成比例的学习,以减少一个标签对其他标签的过度学习。
现在我有两个关于此事的问题 -
- 我的逻辑有问题吗,我错过了什么吗?
- 到目前为止,这个计算产生了更差的性能,我可能想平滑权重,这样它们仍然会有一些不平衡。我的意思是标签之间的比率将保持不变,但它们都会趋向于接近 1。什么是数学运算会给我这样的结果?
谢谢 !!!