Recently I trained a model using KNN regressor, it gave me a good accuracy of more than 82% on the test set, but when I test it on the training data the accuracy stuck at about 70%. How can I fix this problem? I tried cross-validation but It did not increase the accuracy overall. What can be the reason that it is performing well on test data but why not on the data it was trained on?
Do you have higher accuracy on test than on train? Or the opposite? It is not clear from what you write… Train accuracy should be higher than test accuracy. Usually you run the model on the train set and the on the test set, it is not clear if you did this from your message it looks like you did the opposite?
If it is what you say in the title, maybe you are underfitting? If you have already tried k-fold, I would check the data… Some answers…
I had higher accuracy on test set than train set. Actually the problem has been solved, I was wrong somewhere, but suffling solved my problem. Thanks for your suggestion.