There is nothing wrong in eliminating uninformative features - Google feature elimination for more info on that subject. However, this should not be done so you get the highest training score. It should be done so you get the cross-validation (CV) score that generalizes best on unseen data.
Briefly, this means using K folds (K is usually 5 or 10; I will use 10 in my example) for validation in such a way that you train 10 models on 90% of data and validate always on a different 10% of data. During the training the model is made only from the train data, while the validation dataset serves as a control for early stopping. Then you average accuracy scores for those 10 models and get a cross-validated score which estimates how an average of those 10 models would perform on unseen data.
There are many sophisticated ways of removing features and some machine learning methods even know how to do it automatically. In a simple implementation, you remove each feature one at a time, and calculate CV scores for each of those datasets with reduced features. Highest CV score will tell you which feature is least important, so you discard it. Then you iterate through the remaining features, and keep doing so until removing a feature results in a lower score. It is important to always use the same folds for CV, or else the results will not be comparable.