[R-es] Obtener una df a partir de una lista (o algo así)

Manuel Mendoza mmendoz@ @end|ng |rom |u|br|ghtm@||@org
Vie Feb 5 12:18:50 CET 2021


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 (<cof using qualityexcellence.es>)
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 (<
> cgb using datanalytics.com>) 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 (<
>> mmendoza using fulbrightmail.org>)
>> 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
>> > R-help-es using r-project.org
>> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>> >
>>
>>         [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es using r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es