Evaluating flood hazard at the catchment scale via machine-learning techniques