Что делать с исправленными ошибочно классифицированными случайными лесными предсказаниями? - PullRequest
0 голосов
/ 29 ноября 2018

Я обучил мультиклассовую модель случайного леса, и теперь, если модель предсказывает что-то неправильное, мы вручную ее исправляем, ТАК что мы можем сделать с этим исправленным ярлыком и сделать прогнозы лучше.

Мысли:

  1. Невозможно переучить модель снова и снова. (Обучено на 0,7 миллиона строк, поэтому новые данные могут восприниматься как шум)

  2. Невозможно обучить маленькие модели RF, поскольку они также создадут беспорядок

  3. Random FOrest работает лучше, чем NN, поэтому не думая идти таким путем.

1 Ответ

0 голосов
/ 29 ноября 2018
  • Что вы подразумеваете под «ручным исправлением» - , т. Е. могут быть различные точки в деревьях решений, которые были выполнены, что приводит к неправильному предсказанию, не говоря уже о многочисленныхдеревья решений, используемые для получения вашего окончательного прогноза.

  • Я думаю, что в вашем первом пункте есть недоразумение.Если распределение не является стационарным (в этом случае ваша обученная модель имеет уменьшенную ценность для начала), новые данные обрабатываются как «шум» в том смысле, что включение их в окончательную модель вряд ли изменит будущие прогнозывсе это очень многоНасколько я могу судить, так и должно быть, без указания других факторов, таких как изменение распределения и т. Д. То есть, если будущие данные, которые вы хотите предсказать, будут намного больше похожи на данные, которые вы не смогли предсказать правильно, то выдействительно хотел бы подчеркнуть важность классификации этого образца в вашей новой модели.

В любом случае, звучит так, как будто вы описываете проблему онлайн-обучения (вам нужна модель, которая обновляется в ответ на потоковые данные).Вы можете найти некоторые общие идеи, просто ища онлайн случайные леса, например:

  • [Онлайн случайные леса] (http://www.ymer.org/amir/research/online-random-forests/) и [online multiclass lpboost] (https://github.com/amirsaffari/online-multiclass-lpboost)Опишите общую структуру, сходную с тем, что вы можете иметь в виду: вход в модель - это поток новых наблюдений, лес учится на этих новых данных, отбрасывая те деревья, которые работают плохо, и в конечном итоге выращивая новые деревья, которые включают новые данные.
  • Общая идея, описанная здесь, используется в ряде алгоритмов повышения (например, AdaBoost объединяет ансамбль «слабых учеников», например, отдельные деревья решений, выращенные на разных + неполных подмножествахданных, в лучшее целое, обучая последующих слабых учеников, в частности, на ранее ошибочно классифицированных случаях. Идея в том, что те случаи, когда ваша текущая модель неверна, являются наиболее информативными для будущих улучшений производительности.
  • Я незнать конкретные детали того, каксвязанные реализации достигают этого, хотя идея соответствует тому, что вы можете ожидать.

Вы можете попробовать эти или другие подобные алгоритмы, которые вы найдете при поиске.

Тем не менее, я подозреваю, что что-то вроде алгоритма онлайн-случайного леса относительно хорошо, когда старые данные со временем устаревают.Если это не так, т. Е. Если ваши будущие данные и ранние данные получены из одного и того же дистрибутива, для меня не очевидно, что последовательная переподготовка вашей модели (под которой я имею в виду сам случайный лес и любые процедуры перекрестной проверки / выбора модели)вам, возможно, придется преобразовать лесные прогнозы в окончательное назначение.) Данные для всей серии примеров, которые у вас есть, - плохая идея, данные по модулю в очень пространственном пространстве признаков или действительно быстро поступающие данные.

...