Почему при обучении на выборке с положительными целевыми переменными могут появляться отрицательные предсказания у моделей kNN, линейных моделей, нейросетей, деревьев и градиентного бустинга?
Что проверяют
Понимаете ли вы, что ограничение на знак предсказания это свойство устройства модели, а не данных. И различаете ли модели, которые усредняют обучающие ответы, и модели, которые складывают произвольные числа.
Как отвечать
Сразу разделить семейства, потому что ответ у них разный.
Усредняющие модели отрицательное значение выдать не могут в принципе. Регрессионный kNN возвращает среднее по соседям, решающее дерево возвращает среднее по листу, случайный лес усредняет деревья. Выпуклая комбинация положительных чисел положительна. Если минус всё-таки появился, значит цель преобразовали (центрирование, стандартизация, вычитание тренда) и забыли обратное преобразование, либо веса соседей отрицательные, либо в обучающую выборку попали отрицательные ответы.
Неограниченные модели уходят в минус легко. Линейная регрессия это аффинная функция без каких-либо ограничений: при отрицательном коэффициенте и признаке вне обучающего диапазона она спокойно даёт минус. Нейросеть с линейным выходным слоем ведёт себя так же. Градиентный бустинг, несмотря на деревья внутри, складывает базовое значение с поправками, и сумма поправок способна утащить результат ниже нуля.
Лечить причину, а не симптом. Моделировать логарифм цели и возвращаться экспонентой, помня, что так оценивается скорее медиана, чем среднее. Или взять регрессию с логарифмической связью, то есть пуассоновскую, гамма или Tweedie, они есть и в бустингах. Или поставить на выход сети softplus. Обрезание по нулю допустимо как страховка в проде, но оно смещает предсказания вверх и прячет неверно выбранную модель.
Где спотыкаются
Отвечают одинаково про все пять семейств. Вопрос задан ровно ради исключения: kNN и одиночное дерево так не умеют, и признание этого стоит дороже гладкого перечисления.
Ставят обрезание по нулю и закрывают тему. Не проверяют, где модель уходит в минус, а это почти всегда хвост распределения признаков, то есть экстраполяция, где ошибка велика и по модулю.
Учат MSE на сильно скошенной положительной цели вроде денег, длительностей и счётчиков, где дисперсия растёт вместе со средним. Такая функция потерь и тянет решение в минус, и сама по себе плохо описывает задачу.