I am trying to predict the amount of employees a business has based on a set of input variables. I am using things like the business's age, transaction details, geographic location, business structure complexity and a few other input features.
I have a proof data-set of about 18,000 examples, which I am using to train Keras classifiers to label unseen data into bands of employee counts (Group 1-5, Group 6-9 etc.).
I am using a classifier for each band which simply run through all the data and then each classifier will classify if that business belongs in that band or not (Group 1-5, Group 6-9 etc.). The results from each classifier are then compiled for each row and the classifier with the highest confidence (probability) is deemed to be the band that the business is in and is then labelled as.
However I am having some trouble with running the whole algorithm. It all works and each classifier can generate a 70%+ classification accuracy however this is only because the data is hugely unbalanced and the classifiers are just randomly guessing and for some reason generating a high accuracy. The classifiers cannot generalize and find patterns in the input data, that maps characteristics of the input data to the desired output label. I believe this is due to my input variables being weakly correlated to my output variable.
I was wondering if anyone could give me some insight into how to improve the true accuracy of my classification, or if perhaps a regression approach may be more effective (Gave worse results when testing)...
Another note is that my input data has quite a lot of categorical features which makes it very sparse (EG: Having 300 different geographic location possibilities)
I have attached an image of an example of one of my classifiers for one employee count band (The 1-5 Group).
Thanks very much