Incident duration prediction using a bi-level machine learning framework with outlier removal and intra-extra joint optimisation