важнее сказать, что НЕ выкупит
Мне кажется, что если вы бы оценили стоимость двух видов ошибок - неверно угадать неВыкуп и неверное угадать выкуп, то можно было бы на основании этого написать свою evaluation_function (кажется в Lightgbm даже есть пример написания кастомной f_eval для случая разной стоимости false_positive/negative), и ее подать в катбуст. Если есть так разница между наблюдениями (один выкупает посылку за 100р, а другой за 100тыс.), то это можно было бы отразить в параметре sample_weight (как минимум при вычислении итоговой метрики качества модели, а как максимум и при инициализации Pool объекта, хотя это не всегда улучшает модель)