Titanic Kaggle Data: Why am I getting lower accuracy on Kaggle submissions than on held-out data?
It could be because of the percentage of the different class.
Imagine your data is 30% survived and 70% died but in Kaggle's test data this ratio may change, i.e 50%-50%. So your model could not predict kaggle's survived part as well as your test data.
you may impute missing by the mean. if you use test data for calculating mean it could be a cheating for your model.