Я работаю над базой данных с примерно 250000 наблюдениями и 50 предикторами (некоторые из них являются факторами, поэтому в итоге около 100 функций), и у меня проблемы с использованием функции blackboost () (из пакета mboost), которая дает мне ошибку выделения памяти.
В то же время у gbm () нет проблем с обработкой большого количества данных. Согласно документации алгоритм, используемый blackboost, такой же, как gbm. ("http://cran.r-project.org/web/packages/mboost/mboost.pdf ").
Непонятно, почему одна функция может управлять базой данных, а другая нет, я предполагаю:
- У gbm есть стратегия подвыборки (задается аргументом bag.fraction), которая, похоже, не реализована в blackboost и влияет на использование памяти.
- gbm использует функцию CART для построения деревьев, а blackboost использует ctree, который, по-видимому, занимает очень много памяти (Как удалить данные обучения из моделей party ::: ctree?)
Я хочу использовать функцию потери AUC (), доступную в mboost, но не в gbm, поэтому мне было бы интересно любое предложение по преодолению ограничений использования памяти blackboost.
Еще один дополнительный вопрос: когда я пытаюсь уменьшить количество переменных в своей модели, я получаю новую ошибку от blackboost:
Error in matrix(f[ind1], nrow = n0, ncol = n1, byrow = TRUE) : the length of the data [107324] is not a multiple of the number of lines [152107]
Похоже, это происходит из-за функции градиента AUC.
Спасибо за помощь.