A comparative analysis of parametric, semiparametric and machine learning models for survival prediction