Dataset with disproportionately more of a single label than any other I'm using the data analysis software Orange to analyze rows of data with labels $\{H, T,L\}$. $T$ is the neutral state of the system I'm trying to model so data is almost always labeled with $T$.  This leads to an extremely high $97$% classification accuracy, that is untrue.  Almost no datapoint with an $H, L$ actually gets labeled with an $H, L$ respectively by the neural net.  The neural net is doing what's logical: flatten everything to $T$ since that occurs most of the time.  How can I repair this situation?
There are a few ways:


Oversample the under-represented class.
issue: Leads to very constrained boundaries (not smooth) around the under-represented class
Weigh the loss coming from under-represented class more than over-represented class. If you think about it, this is mathematically doing the same thing as 1
Use SMOTE (here) (i recommend this). Basically samples additional points randomly from lines joining nearest under-represented classes and increases the dataset size accordingly. scikit contrib implementation of smote


There are other ways but they offer very marginal improvement over SMOTE