I have a CNN for regression that takes an image and outputs a float 0-10. My model is doing okay, but I have a serious problem with imbalanced data, making my model predict between 6-8 for almost all images, but achieving a decent mean squared error. I know of people weighting their classes based on how imbalanced their dataset is. So, is there a way to do this with a regression model? If it helps, my output is a float, but all of my data is in intervals of 0.5 in the 0-10 range, so there are in a way 20 different classes. Here is the distribution of my data labels.
I understand there are other methods such as:
- Oversampling the minority group.
- Using data augmentation to make "copies" of the minority group.
- Optimizing a different performance metric. (No idea what that would be)
Any suggestions? Thanks.
