Подскажите как random forest может принимать Nan? Или имеется ввиду Nan заменять выбросом, типа -9999999?
Если пакет ругается на NaN, значит он его не принимает
Конкретно для случайного леса указанная вами замена вполне рациональна - выбросов вроде быть не должно.
(Оффтоп)
Теорию по Random Forest, помнится я открывал - там формул страниц на 300. Довольно трудно предсказать, как он себя поведет в зависимости от того, как будет решаться проблема пропусков. Аргументы, которые разные участники приводят, вполне рациональны, но, на мой взгляд, не так однозначны, как участники об этом говорят.
Припоминаю на Kaggle какое-то соревнование, где один участник (иранец) долгое время был наголову лучше остальных. Его упрашивали рассказать, как он это сделал; один из участников написал, что он не может спать уже несколько дней. Иранец над нами сжалился рассказал - дело было задолго до окончания соревнования. Тонкость заключалась в том, что переменные, разность которых содержали значимую информацию, имели значения 1 плюс/минус значения порядка ~1E-7. А всего переменных было в количестве до "едрени фени" - и глазами этот нюанс не виден. Обучающие пакеты не видели эту малую разницу. Иранец (кажется в линейной регрессии) поставил какие-то параметры, в результате которых удалось обучиться достаточно хорошо. Если поставить не те параметры - не работает. Random Forest, конечно, тоже не работал. И бустинг не работал. И нейросети не работали.
Это я к чему. Теория - это хорошо, но на практике вечно что-нибудь идет не так. По "формулам" все должно работать, а оно или не находит, или не сходится, или точность теряет... Все данные вроде есть, а пока что-нибудь не вычислишь из данных и не сунешь Random Forest, он не работает.
И еще одно. Может кто-то еще помнит, флаг публичных соревнований поднял Netflix, и у них была задача предсказания рейтинга фильма для конкретного клиента. Результат, равный наилучшему, показала одна из научных лабораторий (канадская, кажется). Они методично перепробовали "все" методы, и потом ансамблем из разных методов показали лучший результат.
Разных нюансов то полно. Например, проблема дисбаланса, когда классы с малым количество в обучающей выборке просто раздавливаются массовыми классами. Или несоответствие статистики обучающего множества данным в будущем. Если у ТС есть предположения, какие могут быть данные в будущем, то можно починить критерий обучения для улучшения практической точности. Или есть весьма значимые переменные, но встречаются они редко - для них потребуется регуляризация в зависимости от частоты наличия в обучающей выборке. На случайный лес для таких переменных надеяться не стоит. И т.д.
P.S. если данные не закрытые, или их можно анономизировать (для числовых данных обычно нужно переименовать колонки в field1, field2, ...) - то данные можно выложить. Коллектив посмотрит - прогресс качества может превзойти ожидания.