I have a relatively simple 16 feature neural network attempting to predict the outcome of a sports event as win, loss, draw, however regardless of the number of layers, or the number of nodes in said layers, or the learning rate, etc; it still only predicts home and away wins, it never predicts a draw, and even then seems to disproportionately predict home wins. I have a good amount of data, c300,000 matches. I currently have 4 layers in my network, with v.low learning rate (0.000001), 0.001 L2 reg, 0.05 dropout between layers, and test between 60 and 2000 nodes per layer, but no configuration I can find will predict draws in the output. The labels are approx 45% home wins, 25% draws, and 30% away wins. I can show code as required.
Secondly, I'm also unsure if these accuracy and loss metrics show that I'm overfitting, or if the network is still learning. It appears to get to c48% accuracy relatively quickly then make tiny improvements, but I'm really not sure if those improvements are just overfitting.
May be worth noting that I have tried training various network iterations on single class data, and it appeared to train to each class pretty quickly. Otherwise the only things I've tried is changing the number of layers, nodes, hyperparameters, etc.
The first bar chart shows the classes output by the model on the basis of the test_x data - note it only ever predicts home win or away win, never a draw. The second bar chart shows the frequency of the test_y classes - I worry that fact that I'm nowhere near these suggests I have more fundamental issues? Any clarifications or uncertainty just let me know and I'll respond as quickly as possible.
This first bar chart shows the classes predicted by my model on the test set; the second shows the actual class balance in the test set.
Regarding the possible overfitting, here are my graphs of loss and accuracy:
Any help is great appreciated!!