Они будут преобразованы в число меньше, чем все значения фичи, либо больше, чем все значения фичи, так, чтобы наны гарантированно попадали в отдельный от всех остальных значений бакет при квантизации, которая перед обучением происходит.
Что-то глядя на документацию это не очевидно.
“Min” — Each NaN float feature is processed as the minimum value from the dataset.
“Max” — Each NaN float feature is processed as the maximum value from the dataset.
Я предполагал что CatBoost берет минимальное значение и присваивает его всем NaN, поэтому вручную ставил что-то типа -999.
Если это работает так как вы сказали, то буду использовать. Думаю стоит в документации это пояснить.