A Machine Learning-based Framework for Building Application Failure Prediction Models