I have approximately 500 datasets and want to predict yield in one season (about 1000 dataset). I only have one kind of feature (20 years monthly rainfall) so there are 240 features I use. I got RMSE of 900 and average of data is about 4000-6000. Is it possible to prevent overfitting using small dataset? Thank you in advance
If you have only monthly rainfall data to forecast crop yield, then you have only one feature to use for that crop, so you indeed have 500 datasets of each crop and 240 records for each dataset with only one feature - monthly rainfall. I'm assuming that each crop is a different type of plant, and since the impact of rainfall on its growth would be different, you should really model these as 500 different regression models.
So a dataset with 240 records is not too small, you may still be able to train it well without overfitting. Cross-validation is a good approach to prevent overfitting. A good way to estimate how many records are good enough to fit your model, you could draw learning curves when training your model.