Hola, ¿qué tal? Por razones que no vienen al caso y a diferencia de muchos otros tipos de modelos tal como se implementan en R, xgboost admite como argumentos la X (data) y la Y (label) de tu problema por separado. Son dos objetos distintos. agaricus.train es una lista que contiene esos dos objetos (la X y la Y); de hecho, una lista es precisamente eso: una estructura que permite yuxtaponer otras.
Los dos objetos son, el uno, la matriz agaricus.train$data ---puedes ver que se trata de una matriz "sparse" haciendo class(agaricus.train$data) o usar las funciones head, etc. para inspeccionarla--- y el otro es un vector de números (0 o 1), agaricus.train$label. Puedes convertir todo en un df tradicional haciendo algo así como datos <- data.frame(as.matrix(agaricus.train$data), label = agaricus.train$label) Dicho todo lo cual, creo que te vendría bien echarle un buen vistazo a los capítulos 2, 3 y 5 de esto <https://datanalytics.com/libro_r/> antes de meterte con XGBoost o sufrirás mucho. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El vie, 5 feb 2021 a las 6:11, Manuel Mendoza (<[email protected]>) escribió: > Buenos días, estoy tratando de implementar el código que veis abajo, de la > documentación del paquete xgboost. Me desconcierta que al cargar las bases > de datos aparezcan como listas. Cuando la llama directamente al aplicar la > función xgboost (data = train$data) me desconcierta todavía más. Entiendo > que se puede hacer así también, claro. Aunque no aparezca en el documento, > pretendo componer la df para trabajar desde ella (tal y como acostumbro a > hacer) pero, en mi infinita ignorancia, no lo consigo. > He probado cosas como: > df<-as.data.frame(train), > df<-as.data.frame(train$data) > y también con as.matrix, pero no funcionan. > Si alguien me dice cómo hacerlo (y de paso, por qué) se lo agradecería > mucho. > > library(xgboost) > data(agaricus.train, package='xgboost') > data(agaricus.test, package='xgboost') > train <- agaricus.train > test <- agaricus.test > bst <- xgboost(data = train$data, label = train$label, max_depth = 2, eta = > 1, nrounds = 2, objective = "binary:logistic") > > Gracias, como siempre, > Manuel > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > [email protected] > https://stat.ethz.ch/mailman/listinfo/r-help-es > [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
