I am trying to build a layered classifier to predict the likelihood that some input will be either 0 or 1. I use a neural network and Tensorflow + Keras (maybe CNN later).
The problem is this: The data is badly distorted. There are more negative examples than positive ones, possibly 90:10. Therefore, my neural network almost always derives very low probabilities for positive examples. Using binary numbers, in most cases 0 would be predicted.
Performance is> 95% for almost all classes, but this is due to the fact that it almost always predicts zero ... Therefore, the number of false negatives is very large.
Some recommendations for fixing this issue?
Here are the ideas I've reviewed so far:
The punishment of false negatives is greater with the configured loss function (my first attempt failed). Like class weighing positive examples inside a class are more than negative. This is similar to the weight of the class, but inside the class. How would you implement this in Keras?
Overfulfill the positive examples by cloning them and then reassigning the neural network so that the positive and negative examples are balanced.
Thanks in advance!
python neural-network tensorflow keras multilabel-classification
Bugridisli
source share