Gracias Carlos y Carlos J. con lo que me indicáis solucioné bien el problema. Un saludo, Manuel
El vie, 5 feb 2021 a las 9:34, Carlos Ortega (<[email protected]>) escribió: > Hola Manuel, > > Otra alternativa que se me ocurre es que veas el problema de otra forma. > > En vez de usar un caso del ejemplo de la función "xgboost()" en el que > efectivamente las variables de train/test ya tienen una estructura lista > para ser utilizados por xgboost, prueba a crear a partir de un data.frame > las variables de train y test. > > Como referencia mira esto: > > - > https://xgboost.readthedocs.io/en/latest/R-package/xgboostPresentation.html > - Read the part about "Basic Training using XGBoost" / "Parameter > variations" > - O este otro ejemplo más completo: > - > > https://www.analyticsvidhya.com/blog/2016/01/xgboost-algorithm-easy-steps/ > > Gracias, > Carlos Ortega > www.qualityexcellence.es > > El vie, 5 feb 2021 a las 6:36, Carlos J. Gil Bellosta (< > [email protected]>) escribió: > >> 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 >> > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es > [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
