Sto lavorando su un database con circa 250000 osservazioni e 50 predittori (alcuni sono fattori quindi alla fine circa 100 funzioni) e ho problemi con l'uso della funzione blackboost() (da mboost pacchetto) che mi dà un errore di allocazione della memoria.Differenza nell'uso della memoria tra gbm e blackboost
Allo stesso tempo, gbm() non ha problemi a gestire la quantità di dati. Secondo la documentazione l'algoritmo usato da blackboost è lo stesso di gbm. ("http://cran.r-project.org/web/packages/mboost/mboost.pdf").
Non è chiaro il motivo per cui una funzione è in grado di gestire il database e non l'altro, le mie supposizioni:
- GBM ha una strategia sottocampionamento (impostata con l'argomento "bag.fraction"), che doesn' Sembra che sia implementato nel blackboost e incide sull'utilizzo della memoria.
- GBM utilizzare la funzione CART per costruire gli alberi e l'uso blackboost Ctree che sembra avere un enorme footprint di memoria (How to remove training data from party:::ctree models?)
voglio usare la funzione di perdita AUC() disponibile in mboost ma non in GBM , quindi sarei interessato a qualsiasi suggerimento per superare i limiti di utilizzo della memoria blackboost.
Un'altra domanda supplementare, quando cerco di diminuire il numero di variabili nel mio modello, ottengo questo nuovo errore da 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]
sembra venire dalla funzione gradiente AUC.
Grazie per il vostro aiuto.