I'm trying to predict the % attendance of people to gym classes that have previously been booked. It is heavily dependent on the time of day and also a load of other features (is it raining, fraction of class of class that booked yesterday compare to have booked a week ago etc). Random forest alone performs very poorly. I instead tried to predict the difference from the mean for the hour of the day using random forest then just add that on to the mean. This again performs worse than just the mean itself. My first question is, is this predicting the difference from the mean a bad idea? I cant find people using similar methods which makes me think it isnt a good idea. Secondly is there a better algorithm suited to this task?
With random forest there is no need to modify your output variable (i.e difference from the mean) when performing a regression.
It may be that the features you have are not relevant, or that you don't have enough data. Also try different model parameterisations (num trees, num layers etc).
Try to do some feature engineering to create intelligent features that might help the classifier.