It is common to have root mean squared error (RMSE) greater on the test dataset than on the training dataset (this is equal to having accuracy/score higher for model in training dataset than test dataset). This normally happens because the training data are assesed on the same data that have been learnt before, while the test dataset may have data that are unknown / not common that may give more errors or misclassification when doing prediction.
But if your model shows your test dataset have way too high RMSE result rather than your training dataset RMSE result, it may indicates that overfitting happens.
If overfitting happens, there are a lot of reasons this could happen.
Referenced from https://elitedatascience.com/overfitting-in-machine-learning, some factors that causes overfitting are:
- Complexity of data (e.g. there are irrelevant input features). This can be solved with removing irrelevant input features.
- Not enough training data. This can be solved by training with more data (Eventhough this may not always succeed. Sometimes it may give noise towards data), etc.