Handle holdout dataframe

If the holdout dataframe exists, we perform the same feature engineering on it as the training dataframe.

    if holdout_df is not None:
        holdout_df, _ = time_component_encoding(holdout_df)
        holdout_df = remove_datetime_columns(holdout_df)