Когда модель GBM сохранена и загружена, не дает одинаковых предсказанных значений, когда модель загружается снова и снова - PullRequest
0 голосов
/ 20 ноября 2018

Я обучил модель GBM (классификацию) и сохранил ее, используя:

saveRDS(gbmfit, file='E:/..../gbm_nb.rds')

, когда я использую вышеупомянутую модель для оценки данных, я загружаю ее, используя:

gbmfit <- readRDS('E:/..../gbm_nb.rds')

иПредсказание:

nb_lapse$PRED <- predict(gbmfit, nb_lapse, type='response', n.trees=2000)

Эти значения PRED должны быть одинаковыми каждый раз, когда я запускаю его для одних и тех же данных оценки.Но некоторые из этих ценностей бывают разные.Я напечатал их с помощью двух прогонов кода выше, и различия составляют около 3% записей.Разницу я напечатал так: enter image description here

Где ID - уникальный номер.PRD_ORIG идет в первом запуске, а PRED_NEW идет во втором запуске.Во втором запуске я загружаю модель снова.Если я не загружаю модель, вместо этого снова оцениваю данные по уже загруженной модели, тогда я не вижу никакой разницы в значениях PRED.

Видели ли вы такое поведение?Я ожидал, что это даст одинаковые значения PRED для одинаковых данных оценки каждый раз, когда я буду загружать модель и оценивать ее.

Спасибо.

1 Ответ

0 голосов
/ 21 ноября 2018

Я нашел ответ.У меня есть одна категориальная переменная, скажем, A, со многими категориями.В данных поезда я ограничил эти категории на основе другой переменной, скажем, B, во фрейме данных.При подсчете фрейма данных эта переменная B отсутствует.Поэтому, несмотря на то, что мои данные о баллах проходят через код кэппинга, фактического кэппинга категорий не происходит.R не выдает никакой ошибки, если код не выполнен.Поэтому при подсчете данных я получаю больше категорий в категориальной переменной A, чем в данных поезда, по которым обучалась модель.Это создавало проблему, и я получал разные прогнозируемые значения для тех точек данных, где категории отличались или отсутствовали, чем в данных поезда.Как только я ограничил категориальную переменную скоринга, как в данных поезда, мои прогнозируемые значения приходят каждый раз одинаково.

...