Efficient Methods for Dealing with Missing Data in Supervised Learning