Discussion:
[R-es] Random Forests
Manuel Mendoza
2018-01-17 13:29:04 UTC
Permalink
Buenas tardes a todos. El paquete randomForest tiene la función
treesize, que es el nº de nodos. Me dan valores realmente elevados (en
torno a 1000), y eso me parece extraño. ¿sabéis si es así?
Gracias,
Manuel
--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain
Javier Marcuzzi
2018-01-19 14:56:53 UTC
Permalink
Estimado Manuel Mendoza

Comprendo su preocupación, pero su pregunta tiene una respuesta en la
relación datos modelo, en otras palabras, el modelo que usted escribe al
procesar los datos, ¿debe dar ese número? Creo que no se puede responder a
su pregunta, salvo que el algoritmo o por teoría los números deben estar
entre ciertos parámetros, en ese caso yo no lo se.

Javier Rubén Marcuzzi

El 17 de enero de 2018, 10:29, Manuel Mendoza <***@mncn.csic.es>
escribió:

> Buenas tardes a todos. El paquete randomForest tiene la función treesize,
> que es el nº de nodos. Me dan valores realmente elevados (en torno a 1000),
> y eso me parece extraño. ¿sabéis si es así?
> Gracias,
> Manuel
> --
> Dr Manuel Mendoza
> Department of Biogeography and Global Change
> National Museum of Natural History (MNCN)
> Spanish Scientific Council (CSIC)
> C/ Serrano 115bis, 28006 MADRID
> Spain
>
> _______________________________________________
> R-help-es mailing list
> R-help-***@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

[[alternative HTML version deleted]]
Carlos Ortega
2018-01-19 21:31:44 UTC
Permalink
Hola,

A "treesize()" le tienes que pasar como parámetro el objeto randomForest de
tu modelo.
Y obtiene el número de nodos de cada uno de los árboles que hayas indicado
en el valor del parámetros "ntrees" de "randomForest". Por defecto "ntrees"
tiene un valor de 500.
Mira qué valor tiene "ntrees" en tu modelo "randomForest", que seguramente
le hayas indicado un valor de 1000...

Saludos,
Carlos Ortega
www.qualityexcellence.es

El 17 de enero de 2018, 14:29, Manuel Mendoza <***@mncn.csic.es>
escribió:

> Buenas tardes a todos. El paquete randomForest tiene la función treesize,
> que es el nº de nodos. Me dan valores realmente elevados (en torno a 1000),
> y eso me parece extraño. ¿sabéis si es así?
> Gracias,
> Manuel
> --
> Dr Manuel Mendoza
> Department of Biogeography and Global Change
> National Museum of Natural History (MNCN)
> Spanish Scientific Council (CSIC)
> C/ Serrano 115bis, 28006 MADRID
> Spain
>
> _______________________________________________
> R-help-es mailing list
> R-help-***@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



--
Saludos,
Carlos Ortega
www.qualityexcellence.es

[[alternative HTML version deleted]]
Manuel Mendoza
2018-01-20 09:36:32 UTC
Permalink
Gracias Carlos y Javier, ntrees es el nº de árboles y treesize sus
respectivos tamaños (nº de nodos)

ntree: Number of trees to grow. This should not be set to too small ......

treesize: Size of trees (number of nodes) in and ensemble.


Puse 1000 árboles (ntree=1000), si, pero la función treesize te da el
nº de nodos:

treesize(RFfit, terminal=TRUE) me da un vector de 1000 elementos (uno
por cada árbol), todos ellos mayores que 4000 ????

¿tienen los 1000 árboles más de 4000 nodos cada uno? Parece extraño ¿no?

Esa es mi pregunta

Gracias nuevamente,
Manuel





Quoting Carlos Ortega <***@qualityexcellence.es>:

> Hola,
>
> A "treesize()" le tienes que pasar como parámetro el objeto randomForest de
> tu modelo.
> Y obtiene el número de nodos de cada uno de los árboles que hayas indicado
> en el valor del parámetros "ntrees" de "randomForest". Por defecto "ntrees"
> tiene un valor de 500.
> Mira qué valor tiene "ntrees" en tu modelo "randomForest", que seguramente
> le hayas indicado un valor de 1000...
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
> El 17 de enero de 2018, 14:29, Manuel Mendoza <***@mncn.csic.es>
> escribió:
>
>> Buenas tardes a todos. El paquete randomForest tiene la función treesize,
>> que es el nº de nodos. Me dan valores realmente elevados (en torno a 1000),
>> y eso me parece extraño. ¿sabéis si es así?
>> Gracias,
>> Manuel
>> --
>> Dr Manuel Mendoza
>> Department of Biogeography and Global Change
>> National Museum of Natural History (MNCN)
>> Spanish Scientific Council (CSIC)
>> C/ Serrano 115bis, 28006 MADRID
>> Spain
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-***@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es


--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain
Carlos Ortega
2018-01-20 13:51:42 UTC
Permalink
Hola,

No. Mira el ejemplo:

> data(iris)
> iris.rf <- randomForest(Species ~ ., iris)
> hist(treesize(iris.rf))
> treesize(iris.rf)
[1] 7 10 13 7 10 6 9 8 7 9 8 8 6 8 7 9 7 10 6 16 4 13 11
10 8 11 10 8 7 9 9 6 11 7 5 10 12 10 7 12 12 8 11 10
[45] 10 10 9 11 8 6 7 12 9 9 7 6 10 9 10 7 8 8 8 7 8 12 7
11 12 8 7 7 6 9 9 6 6 11 3 9 12 11 13 9 9 7 7 12
[89] 11 6 6 8 6 11 9 10 10 6 7 14 7 10 8 7 9 11 7 14 7 7 8
9 7 6 9 8 9 8 13 9 10 10 9 11 6 7 9 10 8 9 9 6
[133] 9 8 10 9 11 8 6 7 13 6 6 9 5 14 8 10 13 10 12 13 11 12 10
9 12 9 13 10 9 11 7 10 10 9 9 8 6 5 9 9 11 10 8 10
[177] 4 10 12 10 10 8 10 11 9 5 7 8 8 15 8 7 7 9 12 9 10 9 12
8 10 8 11 9 6 7 9 12 7 8 10 12 6 14 11 4 6 6 7 9
[221] 10 11 13 5 8 10 7 10 10 12 10 11 11 8 9 11 9 9 9 10 6 10 7
10 10 14 9 10 6 10 6 8 6 9 9 10 10 10 10 9 10 10 8 14
[265] 8 11 6 11 9 9 9 8 11 7 8 11 8 4 9 11 6 8 10 8 9 10 8
9 8 11 11 9 12 14 7 9 8 9 10 10 11 8 12 12 12 4 10 11
[309] 8 8 11 9 9 8 10 9 4 10 10 6 13 10 12 9 10 9 5 9 7 4 7
15 7 8 7 11 7 11 12 5 12 7 9 8 13 14 9 9 9 9 6 13
[353] 13 7 10 6 5 6 10 6 8 8 9 11 9 11 7 7 11 8 6 10 13 7 12
11 14 7 10 11 9 8 6 8 10 8 9 6 10 10 6 7 7 7 11 13
[397] 8 5 7 14 10 14 8 9 6 11 9 11 10 9 8 7 11 10 10 11 8 10 12
9 8 8 9 9 9 9 9 5 9 7 13 10 11 8 10 9 10 12 8 12
[441] 9 10 4 7 11 7 10 4 6 13 8 7 10 9 7 6 8 9 7 11 8 8 9
10 5 8 11 12 6 5 10 10 6 10 10 5 10 13 9 13 10 10 6 12
[485] 8 7 9 12 10 9 7 7 14 6 9 6 6 8 10 6
> vtmp <- treesize(iris.rf)
> sum(vtmp)

Por defecto al no especificar nada, el "ntrees" de randomForest() es 500.
Efectivamente generas 500 árboles como ves en el número de elementos que
devuelve "treesize(iris.rf)".

Y cada árbol, tiene el número de nodos que ves en el valor de cada uno de
los elementos que igualmente devuelve "treesize(iris.rf)": 7, 10, 13...

Gracias,
Carlos

El 20 de enero de 2018, 10:36, Manuel Mendoza <***@mncn.csic.es>
escribió:

>
> Gracias Carlos y Javier, ntrees es el nº de árboles y treesize sus
> respectivos tamaños (nº de nodos)
>
> ntree: Number of trees to grow. This should not be set to too small ......
>
> treesize: Size of trees (number of nodes) in and ensemble.
>
>
> Puse 1000 árboles (ntree=1000), si, pero la función treesize te da el nº
> de nodos:
>
> treesize(RFfit, terminal=TRUE) me da un vector de 1000 elementos (uno por
> cada árbol), todos ellos mayores que 4000 ????
>
> ¿tienen los 1000 árboles más de 4000 nodos cada uno? Parece extraño ¿no?
>
> Esa es mi pregunta
>
> Gracias nuevamente,
> Manuel
>
>
>
>
>
>
> Quoting Carlos Ortega <***@qualityexcellence.es>:
>
> Hola,
>>
>> A "treesize()" le tienes que pasar como parámetro el objeto randomForest
>> de
>> tu modelo.
>> Y obtiene el número de nodos de cada uno de los árboles que hayas indicado
>> en el valor del parámetros "ntrees" de "randomForest". Por defecto
>> "ntrees"
>> tiene un valor de 500.
>> Mira qué valor tiene "ntrees" en tu modelo "randomForest", que seguramente
>> le hayas indicado un valor de 1000...
>>
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>> El 17 de enero de 2018, 14:29, Manuel Mendoza <***@mncn.csic.es>
>> escribió:
>>
>> Buenas tardes a todos. El paquete randomForest tiene la función treesize,
>>> que es el nº de nodos. Me dan valores realmente elevados (en torno a
>>> 1000),
>>> y eso me parece extraño. ¿sabéis si es así?
>>> Gracias,
>>> Manuel
>>> --
>>> Dr Manuel Mendoza
>>> Department of Biogeography and Global Change
>>> National Museum of Natural History (MNCN)
>>> Spanish Scientific Council (CSIC)
>>> C/ Serrano 115bis, 28006 MADRID
>>> Spain
>>>
>>> _______________________________________________
>>> R-help-es mailing list
>>> R-help-***@r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>
>>>
>>
>>
>> --
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>
>
> --
> Dr Manuel Mendoza
> Department of Biogeography and Global Change
> National Museum of Natural History (MNCN)
> Spanish Scientific Council (CSIC)
> C/ Serrano 115bis, 28006 MADRID
> Spain
>
>


--
Saludos,
Carlos Ortega
www.qualityexcellence.es

[[alternative HTML version deleted]]
Manuel Mendoza
2018-01-20 17:17:34 UTC
Permalink
Si, Carlos. Yo hago lo mismo, pero esos mismos numeritos salen enormes.

> treesize(RFfit)

[1] 4304 4302 4311 4319 4343 4298 4298 4311 4349 4327 4331 4317
4294 4321 4283 4362
[17] 4300 4330 4266 4331 4308 4352 4294 4315 4372 4349 4331 4347
4329 4348 4298 4335
[33] 4346 4396 4345 4313 4293 4276 4353 4272 4304 4325 4317 4336
4308 4351 4374 4324
[49] 4386 4359 4311 4346 4300 4332 4336 4376 4319 4322 4344 4324
4324 4359 4342 4378
[65] 4344 4324 4314 4318 4344 4311 4359 4304 4288 .... hasta 1000

Con mtry le indicas el nº de variables que los árboles utilizarán
(recomendado m=√p para árboles de clasificación, y m = p/3 para los de
regresión), y con ntree el nº de árboles. Pero no encuentro cómo
indicarle, aunque sea, un tamaño máximo para los árboles, y en
cualquier caso, me parece extraño que se generen árboles con
tantísimos nodos. Mi df tiene unas 13.000 entradas y 19 variables,
pero eso no es nada especial para que me hiciese árboles tan grandes.

No entiendo



Quoting Carlos Ortega <***@qualityexcellence.es>:

> Hola,
>
> No. Mira el ejemplo:
>
>> data(iris)
>> iris.rf <- randomForest(Species ~ ., iris)
>> hist(treesize(iris.rf))
>> treesize(iris.rf)
> [1] 7 10 13 7 10 6 9 8 7 9 8 8 6 8 7 9 7 10 6 16 4 13 11
> 10 8 11 10 8 7 9 9 6 11 7 5 10 12 10 7 12 12 8 11 10
> [45] 10 10 9 11 8 6 7 12 9 9 7 6 10 9 10 7 8 8 8 7 8 12 7
> 11 12 8 7 7 6 9 9 6 6 11 3 9 12 11 13 9 9 7 7 12
> [89] 11 6 6 8 6 11 9 10 10 6 7 14 7 10 8 7 9 11 7 14 7 7 8
> 9 7 6 9 8 9 8 13 9 10 10 9 11 6 7 9 10 8 9 9 6
> [133] 9 8 10 9 11 8 6 7 13 6 6 9 5 14 8 10 13 10 12 13 11 12 10
> 9 12 9 13 10 9 11 7 10 10 9 9 8 6 5 9 9 11 10 8 10
> [177] 4 10 12 10 10 8 10 11 9 5 7 8 8 15 8 7 7 9 12 9 10 9 12
> 8 10 8 11 9 6 7 9 12 7 8 10 12 6 14 11 4 6 6 7 9
> [221] 10 11 13 5 8 10 7 10 10 12 10 11 11 8 9 11 9 9 9 10 6 10 7
> 10 10 14 9 10 6 10 6 8 6 9 9 10 10 10 10 9 10 10 8 14
> [265] 8 11 6 11 9 9 9 8 11 7 8 11 8 4 9 11 6 8 10 8 9 10 8
> 9 8 11 11 9 12 14 7 9 8 9 10 10 11 8 12 12 12 4 10 11
> [309] 8 8 11 9 9 8 10 9 4 10 10 6 13 10 12 9 10 9 5 9 7 4 7
> 15 7 8 7 11 7 11 12 5 12 7 9 8 13 14 9 9 9 9 6 13
> [353] 13 7 10 6 5 6 10 6 8 8 9 11 9 11 7 7 11 8 6 10 13 7 12
> 11 14 7 10 11 9 8 6 8 10 8 9 6 10 10 6 7 7 7 11 13
> [397] 8 5 7 14 10 14 8 9 6 11 9 11 10 9 8 7 11 10 10 11 8 10 12
> 9 8 8 9 9 9 9 9 5 9 7 13 10 11 8 10 9 10 12 8 12
> [441] 9 10 4 7 11 7 10 4 6 13 8 7 10 9 7 6 8 9 7 11 8 8 9
> 10 5 8 11 12 6 5 10 10 6 10 10 5 10 13 9 13 10 10 6 12
> [485] 8 7 9 12 10 9 7 7 14 6 9 6 6 8 10 6
>> vtmp <- treesize(iris.rf)
>> sum(vtmp)
>
> Por defecto al no especificar nada, el "ntrees" de randomForest() es 500.
> Efectivamente generas 500 árboles como ves en el número de elementos que
> devuelve "treesize(iris.rf)".
>
> Y cada árbol, tiene el número de nodos que ves en el valor de cada uno de
> los elementos que igualmente devuelve "treesize(iris.rf)": 7, 10, 13...
>
> Gracias,
> Carlos
>
> El 20 de enero de 2018, 10:36, Manuel Mendoza <***@mncn.csic.es>
> escribió:
>
>>
>> Gracias Carlos y Javier, ntrees es el nº de árboles y treesize sus
>> respectivos tamaños (nº de nodos)
>>
>> ntree: Number of trees to grow. This should not be set to too small ......
>>
>> treesize: Size of trees (number of nodes) in and ensemble.
>>
>>
>> Puse 1000 árboles (ntree=1000), si, pero la función treesize te da el nº
>> de nodos:
>>
>> treesize(RFfit, terminal=TRUE) me da un vector de 1000 elementos (uno por
>> cada árbol), todos ellos mayores que 4000 ????
>>
>> ¿tienen los 1000 árboles más de 4000 nodos cada uno? Parece extraño ¿no?
>>
>> Esa es mi pregunta
>>
>> Gracias nuevamente,
>> Manuel
>>
>>
>>
>>
>>
>>
>> Quoting Carlos Ortega <***@qualityexcellence.es>:
>>
>> Hola,
>>>
>>> A "treesize()" le tienes que pasar como parámetro el objeto randomForest
>>> de
>>> tu modelo.
>>> Y obtiene el número de nodos de cada uno de los árboles que hayas indicado
>>> en el valor del parámetros "ntrees" de "randomForest". Por defecto
>>> "ntrees"
>>> tiene un valor de 500.
>>> Mira qué valor tiene "ntrees" en tu modelo "randomForest", que seguramente
>>> le hayas indicado un valor de 1000...
>>>
>>> Saludos,
>>> Carlos Ortega
>>> www.qualityexcellence.es
>>>
>>> El 17 de enero de 2018, 14:29, Manuel Mendoza <***@mncn.csic.es>
>>> escribió:
>>>
>>> Buenas tardes a todos. El paquete randomForest tiene la función treesize,
>>>> que es el nº de nodos. Me dan valores realmente elevados (en torno a
>>>> 1000),
>>>> y eso me parece extraño. ¿sabéis si es así?
>>>> Gracias,
>>>> Manuel
>>>> --
>>>> Dr Manuel Mendoza
>>>> Department of Biogeography and Global Change
>>>> National Museum of Natural History (MNCN)
>>>> Spanish Scientific Council (CSIC)
>>>> C/ Serrano 115bis, 28006 MADRID
>>>> Spain
>>>>
>>>> _______________________________________________
>>>> R-help-es mailing list
>>>> R-help-***@r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>>
>>>>
>>>
>>>
>>> --
>>> Saludos,
>>> Carlos Ortega
>>> www.qualityexcellence.es
>>>
>>
>>
>> --
>> Dr Manuel Mendoza
>> Department of Biogeography and Global Change
>> National Museum of Natural History (MNCN)
>> Spanish Scientific Council (CSIC)
>> C/ Serrano 115bis, 28006 MADRID
>> Spain
>>
>>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es


--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain
Carlos Ortega
2018-01-20 19:49:42 UTC
Permalink
Lo defines con el parámetro "maxnodes"... si no lo delimitas, el árbol
crece hasta el máximo posible.
Y si lo estás usando para un caso de clasificación, el árbol se extiende
hasta el límite en el que en el nodo hay un (1) caso.

[image: Imágenes integradas 2]

Por eso, dependiendo de tu problema, y esto es un caso de optimización.
Juega también con el parámetro "nodesize".


[image: Imágenes integradas 3]

Explora combinaciones de los dos parámetros para ver qué caso es el que
mejor respuesta te ofrece sin penalizarte en complejidad.

Gracias,
Carlos.





El 20 de enero de 2018, 18:17, Manuel Mendoza <***@mncn.csic.es>
escribió:

> Si, Carlos. Yo hago lo mismo, pero esos mismos numeritos salen enormes.
>
> treesize(RFfit)
>>
>
> [1] 4304 4302 4311 4319 4343 4298 4298 4311 4349 4327 4331 4317 4294
> 4321 4283 4362
> [17] 4300 4330 4266 4331 4308 4352 4294 4315 4372 4349 4331 4347 4329
> 4348 4298 4335
> [33] 4346 4396 4345 4313 4293 4276 4353 4272 4304 4325 4317 4336 4308
> 4351 4374 4324
> [49] 4386 4359 4311 4346 4300 4332 4336 4376 4319 4322 4344 4324 4324
> 4359 4342 4378
> [65] 4344 4324 4314 4318 4344 4311 4359 4304 4288 .... hasta 1000
>
> Con mtry le indicas el nº de variables que los árboles utilizarán
> (recomendado m=√p para árboles de clasificación, y m = p/3 para los de
> regresión), y con ntree el nº de árboles. Pero no encuentro cómo indicarle,
> aunque sea, un tamaño máximo para los árboles, y en cualquier caso, me
> parece extraño que se generen árboles con tantísimos nodos. Mi df tiene
> unas 13.000 entradas y 19 variables, pero eso no es nada especial para que
> me hiciese árboles tan grandes.
>
> No entiendo
>
>
>
>
> Quoting Carlos Ortega <***@qualityexcellence.es>:
>
> Hola,
>>
>> No. Mira el ejemplo:
>>
>> data(iris)
>>> iris.rf <- randomForest(Species ~ ., iris)
>>> hist(treesize(iris.rf))
>>> treesize(iris.rf)
>>>
>> [1] 7 10 13 7 10 6 9 8 7 9 8 8 6 8 7 9 7 10 6 16 4 13 11
>> 10 8 11 10 8 7 9 9 6 11 7 5 10 12 10 7 12 12 8 11 10
>> [45] 10 10 9 11 8 6 7 12 9 9 7 6 10 9 10 7 8 8 8 7 8 12 7
>> 11 12 8 7 7 6 9 9 6 6 11 3 9 12 11 13 9 9 7 7 12
>> [89] 11 6 6 8 6 11 9 10 10 6 7 14 7 10 8 7 9 11 7 14 7 7 8
>> 9 7 6 9 8 9 8 13 9 10 10 9 11 6 7 9 10 8 9 9 6
>> [133] 9 8 10 9 11 8 6 7 13 6 6 9 5 14 8 10 13 10 12 13 11 12 10
>> 9 12 9 13 10 9 11 7 10 10 9 9 8 6 5 9 9 11 10 8 10
>> [177] 4 10 12 10 10 8 10 11 9 5 7 8 8 15 8 7 7 9 12 9 10 9 12
>> 8 10 8 11 9 6 7 9 12 7 8 10 12 6 14 11 4 6 6 7 9
>> [221] 10 11 13 5 8 10 7 10 10 12 10 11 11 8 9 11 9 9 9 10 6 10 7
>> 10 10 14 9 10 6 10 6 8 6 9 9 10 10 10 10 9 10 10 8 14
>> [265] 8 11 6 11 9 9 9 8 11 7 8 11 8 4 9 11 6 8 10 8 9 10 8
>> 9 8 11 11 9 12 14 7 9 8 9 10 10 11 8 12 12 12 4 10 11
>> [309] 8 8 11 9 9 8 10 9 4 10 10 6 13 10 12 9 10 9 5 9 7 4 7
>> 15 7 8 7 11 7 11 12 5 12 7 9 8 13 14 9 9 9 9 6 13
>> [353] 13 7 10 6 5 6 10 6 8 8 9 11 9 11 7 7 11 8 6 10 13 7 12
>> 11 14 7 10 11 9 8 6 8 10 8 9 6 10 10 6 7 7 7 11 13
>> [397] 8 5 7 14 10 14 8 9 6 11 9 11 10 9 8 7 11 10 10 11 8 10 12
>> 9 8 8 9 9 9 9 9 5 9 7 13 10 11 8 10 9 10 12 8 12
>> [441] 9 10 4 7 11 7 10 4 6 13 8 7 10 9 7 6 8 9 7 11 8 8 9
>> 10 5 8 11 12 6 5 10 10 6 10 10 5 10 13 9 13 10 10 6 12
>> [485] 8 7 9 12 10 9 7 7 14 6 9 6 6 8 10 6
>>
>>> vtmp <- treesize(iris.rf)
>>> sum(vtmp)
>>>
>>
>> Por defecto al no especificar nada, el "ntrees" de randomForest() es 500.
>> Efectivamente generas 500 árboles como ves en el número de elementos que
>> devuelve "treesize(iris.rf)".
>>
>> Y cada árbol, tiene el número de nodos que ves en el valor de cada uno de
>> los elementos que igualmente devuelve "treesize(iris.rf)": 7, 10, 13...
>>
>> Gracias,
>> Carlos
>>
>> El 20 de enero de 2018, 10:36, Manuel Mendoza <***@mncn.csic.es>
>> escribió:
>>
>>
>>> Gracias Carlos y Javier, ntrees es el nº de árboles y treesize sus
>>> respectivos tamaños (nº de nodos)
>>>
>>> ntree: Number of trees to grow. This should not be set to too small
>>> ......
>>>
>>> treesize: Size of trees (number of nodes) in and ensemble.
>>>
>>>
>>> Puse 1000 árboles (ntree=1000), si, pero la función treesize te da el nº
>>> de nodos:
>>>
>>> treesize(RFfit, terminal=TRUE) me da un vector de 1000 elementos (uno por
>>> cada árbol), todos ellos mayores que 4000 ????
>>>
>>> ¿tienen los 1000 árboles más de 4000 nodos cada uno? Parece extraño ¿no?
>>>
>>> Esa es mi pregunta
>>>
>>> Gracias nuevamente,
>>> Manuel
>>>
>>>
>>>
>>>
>>>
>>>
>>> Quoting Carlos Ortega <***@qualityexcellence.es>:
>>>
>>> Hola,
>>>
>>>>
>>>> A "treesize()" le tienes que pasar como parámetro el objeto randomForest
>>>> de
>>>> tu modelo.
>>>> Y obtiene el número de nodos de cada uno de los árboles que hayas
>>>> indicado
>>>> en el valor del parámetros "ntrees" de "randomForest". Por defecto
>>>> "ntrees"
>>>> tiene un valor de 500.
>>>> Mira qué valor tiene "ntrees" en tu modelo "randomForest", que
>>>> seguramente
>>>> le hayas indicado un valor de 1000...
>>>>
>>>> Saludos,
>>>> Carlos Ortega
>>>> www.qualityexcellence.es
>>>>
>>>> El 17 de enero de 2018, 14:29, Manuel Mendoza <***@mncn.csic.es>
>>>> escribió:
>>>>
>>>> Buenas tardes a todos. El paquete randomForest tiene la función
>>>> treesize,
>>>>
>>>>> que es el nº de nodos. Me dan valores realmente elevados (en torno a
>>>>> 1000),
>>>>> y eso me parece extraño. ¿sabéis si es así?
>>>>> Gracias,
>>>>> Manuel
>>>>> --
>>>>> Dr Manuel Mendoza
>>>>> Department of Biogeography and Global Change
>>>>> National Museum of Natural History (MNCN)
>>>>> Spanish Scientific Council (CSIC)
>>>>> C/ Serrano 115bis, 28006 MADRID
>>>>> Spain
>>>>>
>>>>> _______________________________________________
>>>>> R-help-es mailing list
>>>>> R-help-***@r-project.org
>>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> Saludos,
>>>> Carlos Ortega
>>>> www.qualityexcellence.es
>>>>
>>>>
>>>
>>> --
>>> Dr Manuel Mendoza
>>> Department of Biogeography and Global Change
>>> National Museum of Natural History (MNCN)
>>> Spanish Scientific Council (CSIC)
>>> C/ Serrano 115bis, 28006 MADRID
>>> Spain
>>>
>>>
>>>
>>
>> --
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>
>
> --
> Dr Manuel Mendoza
> Department of Biogeography and Global Change
> National Museum of Natural History (MNCN)
> Spanish Scientific Council (CSIC)
> C/ Serrano 115bis, 28006 MADRID
> Spain
>
>


--
Saludos,
Carlos Ortega
www.qualityexcellence.es
Manuel Mendoza
2018-01-22 09:44:50 UTC
Permalink
Muchas gracias Carlos, como siempre.
Es raro que se me pasase. En su momento miré todos los argumentos del
RF, como hago siempre, pero ese lo había olvidado. La verdad es que
funcionaba estupendamente, pero me parecía extraño. Aunque dado que
los RF no sobreajustan, no hay problema con que sus árboles sean todo
lo grandes que quieras. Lo he testado con una base de datos externa y
explica un porcentaje de la varianza mayor del que esperaba. Mejor que
con un simple bagging y mucho mejor que con cualquier árbol o
regresión múltiple. Ahora estoy probando con gmb, a ver que tal.
Un saludo.
Manuel


Quoting Carlos Ortega <***@qualityexcellence.es>:

> Lo defines con el parámetro "maxnodes"... si no lo delimitas, el árbol
> crece hasta el máximo posible.
> Y si lo estás usando para un caso de clasificación, el árbol se extiende
> hasta el límite en el que en el nodo hay un (1) caso.
>
> [image: Imágenes integradas 2]
>
> Por eso, dependiendo de tu problema, y esto es un caso de optimización.
> Juega también con el parámetro "nodesize".
>
>
> [image: Imágenes integradas 3]
>
> Explora combinaciones de los dos parámetros para ver qué caso es el que
> mejor respuesta te ofrece sin penalizarte en complejidad.
>
> Gracias,
> Carlos.
>
>
>
>
>
> El 20 de enero de 2018, 18:17, Manuel Mendoza <***@mncn.csic.es>
> escribió:
>
>> Si, Carlos. Yo hago lo mismo, pero esos mismos numeritos salen enormes.
>>
>> treesize(RFfit)
>>>
>>
>> [1] 4304 4302 4311 4319 4343 4298 4298 4311 4349 4327 4331 4317 4294
>> 4321 4283 4362
>> [17] 4300 4330 4266 4331 4308 4352 4294 4315 4372 4349 4331 4347 4329
>> 4348 4298 4335
>> [33] 4346 4396 4345 4313 4293 4276 4353 4272 4304 4325 4317 4336 4308
>> 4351 4374 4324
>> [49] 4386 4359 4311 4346 4300 4332 4336 4376 4319 4322 4344 4324 4324
>> 4359 4342 4378
>> [65] 4344 4324 4314 4318 4344 4311 4359 4304 4288 .... hasta 1000
>>
>> Con mtry le indicas el nº de variables que los árboles utilizarán
>> (recomendado m=√p para árboles de clasificación, y m = p/3 para los de
>> regresión), y con ntree el nº de árboles. Pero no encuentro cómo indicarle,
>> aunque sea, un tamaño máximo para los árboles, y en cualquier caso, me
>> parece extraño que se generen árboles con tantísimos nodos. Mi df tiene
>> unas 13.000 entradas y 19 variables, pero eso no es nada especial para que
>> me hiciese árboles tan grandes.
>>
>> No entiendo
>>
>>
>>
>>
>> Quoting Carlos Ortega <***@qualityexcellence.es>:
>>
>> Hola,
>>>
>>> No. Mira el ejemplo:
>>>
>>> data(iris)
>>>> iris.rf <- randomForest(Species ~ ., iris)
>>>> hist(treesize(iris.rf))
>>>> treesize(iris.rf)
>>>>
>>> [1] 7 10 13 7 10 6 9 8 7 9 8 8 6 8 7 9 7 10 6 16 4 13 11
>>> 10 8 11 10 8 7 9 9 6 11 7 5 10 12 10 7 12 12 8 11 10
>>> [45] 10 10 9 11 8 6 7 12 9 9 7 6 10 9 10 7 8 8 8 7 8 12 7
>>> 11 12 8 7 7 6 9 9 6 6 11 3 9 12 11 13 9 9 7 7 12
>>> [89] 11 6 6 8 6 11 9 10 10 6 7 14 7 10 8 7 9 11 7 14 7 7 8
>>> 9 7 6 9 8 9 8 13 9 10 10 9 11 6 7 9 10 8 9 9 6
>>> [133] 9 8 10 9 11 8 6 7 13 6 6 9 5 14 8 10 13 10 12 13 11 12 10
>>> 9 12 9 13 10 9 11 7 10 10 9 9 8 6 5 9 9 11 10 8 10
>>> [177] 4 10 12 10 10 8 10 11 9 5 7 8 8 15 8 7 7 9 12 9 10 9 12
>>> 8 10 8 11 9 6 7 9 12 7 8 10 12 6 14 11 4 6 6 7 9
>>> [221] 10 11 13 5 8 10 7 10 10 12 10 11 11 8 9 11 9 9 9 10 6 10 7
>>> 10 10 14 9 10 6 10 6 8 6 9 9 10 10 10 10 9 10 10 8 14
>>> [265] 8 11 6 11 9 9 9 8 11 7 8 11 8 4 9 11 6 8 10 8 9 10 8
>>> 9 8 11 11 9 12 14 7 9 8 9 10 10 11 8 12 12 12 4 10 11
>>> [309] 8 8 11 9 9 8 10 9 4 10 10 6 13 10 12 9 10 9 5 9 7 4 7
>>> 15 7 8 7 11 7 11 12 5 12 7 9 8 13 14 9 9 9 9 6 13
>>> [353] 13 7 10 6 5 6 10 6 8 8 9 11 9 11 7 7 11 8 6 10 13 7 12
>>> 11 14 7 10 11 9 8 6 8 10 8 9 6 10 10 6 7 7 7 11 13
>>> [397] 8 5 7 14 10 14 8 9 6 11 9 11 10 9 8 7 11 10 10 11 8 10 12
>>> 9 8 8 9 9 9 9 9 5 9 7 13 10 11 8 10 9 10 12 8 12
>>> [441] 9 10 4 7 11 7 10 4 6 13 8 7 10 9 7 6 8 9 7 11 8 8 9
>>> 10 5 8 11 12 6 5 10 10 6 10 10 5 10 13 9 13 10 10 6 12
>>> [485] 8 7 9 12 10 9 7 7 14 6 9 6 6 8 10 6
>>>
>>>> vtmp <- treesize(iris.rf)
>>>> sum(vtmp)
>>>>
>>>
>>> Por defecto al no especificar nada, el "ntrees" de randomForest() es 500.
>>> Efectivamente generas 500 árboles como ves en el número de elementos que
>>> devuelve "treesize(iris.rf)".
>>>
>>> Y cada árbol, tiene el número de nodos que ves en el valor de cada uno de
>>> los elementos que igualmente devuelve "treesize(iris.rf)": 7, 10, 13...
>>>
>>> Gracias,
>>> Carlos
>>>
>>> El 20 de enero de 2018, 10:36, Manuel Mendoza <***@mncn.csic.es>
>>> escribió:
>>>
>>>
>>>> Gracias Carlos y Javier, ntrees es el nº de árboles y treesize sus
>>>> respectivos tamaños (nº de nodos)
>>>>
>>>> ntree: Number of trees to grow. This should not be set to too small
>>>> ......
>>>>
>>>> treesize: Size of trees (number of nodes) in and ensemble.
>>>>
>>>>
>>>> Puse 1000 árboles (ntree=1000), si, pero la función treesize te da el nº
>>>> de nodos:
>>>>
>>>> treesize(RFfit, terminal=TRUE) me da un vector de 1000 elementos (uno por
>>>> cada árbol), todos ellos mayores que 4000 ????
>>>>
>>>> ¿tienen los 1000 árboles más de 4000 nodos cada uno? Parece extraño ¿no?
>>>>
>>>> Esa es mi pregunta
>>>>
>>>> Gracias nuevamente,
>>>> Manuel
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Quoting Carlos Ortega <***@qualityexcellence.es>:
>>>>
>>>> Hola,
>>>>
>>>>>
>>>>> A "treesize()" le tienes que pasar como parámetro el objeto randomForest
>>>>> de
>>>>> tu modelo.
>>>>> Y obtiene el número de nodos de cada uno de los árboles que hayas
>>>>> indicado
>>>>> en el valor del parámetros "ntrees" de "randomForest". Por defecto
>>>>> "ntrees"
>>>>> tiene un valor de 500.
>>>>> Mira qué valor tiene "ntrees" en tu modelo "randomForest", que
>>>>> seguramente
>>>>> le hayas indicado un valor de 1000...
>>>>>
>>>>> Saludos,
>>>>> Carlos Ortega
>>>>> www.qualityexcellence.es
>>>>>
>>>>> El 17 de enero de 2018, 14:29, Manuel Mendoza <***@mncn.csic.es>
>>>>> escribió:
>>>>>
>>>>> Buenas tardes a todos. El paquete randomForest tiene la función
>>>>> treesize,
>>>>>
>>>>>> que es el nº de nodos. Me dan valores realmente elevados (en torno a
>>>>>> 1000),
>>>>>> y eso me parece extraño. ¿sabéis si es así?
>>>>>> Gracias,
>>>>>> Manuel
>>>>>> --
>>>>>> Dr Manuel Mendoza
>>>>>> Department of Biogeography and Global Change
>>>>>> National Museum of Natural History (MNCN)
>>>>>> Spanish Scientific Council (CSIC)
>>>>>> C/ Serrano 115bis, 28006 MADRID
>>>>>> Spain
>>>>>>
>>>>>> _______________________________________________
>>>>>> R-help-es mailing list
>>>>>> R-help-***@r-project.org
>>>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> Saludos,
>>>>> Carlos Ortega
>>>>> www.qualityexcellence.es
>>>>>
>>>>>
>>>>
>>>> --
>>>> Dr Manuel Mendoza
>>>> Department of Biogeography and Global Change
>>>> National Museum of Natural History (MNCN)
>>>> Spanish Scientific Council (CSIC)
>>>> C/ Serrano 115bis, 28006 MADRID
>>>> Spain
>>>>
>>>>
>>>>
>>>
>>> --
>>> Saludos,
>>> Carlos Ortega
>>> www.qualityexcellence.es
>>>
>>
>>
>> --
>> Dr Manuel Mendoza
>> Department of Biogeography and Global Change
>> National Museum of Natural History (MNCN)
>> Spanish Scientific Council (CSIC)
>> C/ Serrano 115bis, 28006 MADRID
>> Spain
>>
>>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es


--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain
Jesús Para Fernández
2018-01-22 17:08:55 UTC
Permalink
Prueba con xgboost tb que funcionan muy bien!
________________________________
De: R-help-es <r-help-es-***@r-project.org> en nombre de Manuel Mendoza <***@mncn.csic.es>
Enviado: lunes, 22 de enero de 2018 10:44
Para: Carlos Ortega
Cc: r-help-***@r-project.org
Asunto: Re: [R-es] Random Forests

Muchas gracias Carlos, como siempre.
Es raro que se me pasase. En su momento miré todos los argumentos del
RF, como hago siempre, pero ese lo había olvidado. La verdad es que
funcionaba estupendamente, pero me parecía extraño. Aunque dado que
los RF no sobreajustan, no hay problema con que sus árboles sean todo
lo grandes que quieras. Lo he testado con una base de datos externa y
explica un porcentaje de la varianza mayor del que esperaba. Mejor que
con un simple bagging y mucho mejor que con cualquier árbol o
regresión múltiple. Ahora estoy probando con gmb, a ver que tal.
Un saludo.
Manuel


Quoting Carlos Ortega <***@qualityexcellence.es>:

> Lo defines con el parámetro "maxnodes"... si no lo delimitas, el árbol
> crece hasta el máximo posible.
> Y si lo estás usando para un caso de clasificación, el árbol se extiende
> hasta el límite en el que en el nodo hay un (1) caso.
>
> [image: Imágenes integradas 2]
>
> Por eso, dependiendo de tu problema, y esto es un caso de optimización.
> Juega también con el parámetro "nodesize".
>
>
> [image: Imágenes integradas 3]
>
> Explora combinaciones de los dos parámetros para ver qué caso es el que
> mejor respuesta te ofrece sin penalizarte en complejidad.
>
> Gracias,
> Carlos.
>
>
>
>
>
> El 20 de enero de 2018, 18:17, Manuel Mendoza <***@mncn.csic.es>
> escribió:
>
>> Si, Carlos. Yo hago lo mismo, pero esos mismos numeritos salen enormes.
>>
>> treesize(RFfit)
>>>
>>
>> [1] 4304 4302 4311 4319 4343 4298 4298 4311 4349 4327 4331 4317 4294
>> 4321 4283 4362
>> [17] 4300 4330 4266 4331 4308 4352 4294 4315 4372 4349 4331 4347 4329
>> 4348 4298 4335
>> [33] 4346 4396 4345 4313 4293 4276 4353 4272 4304 4325 4317 4336 4308
>> 4351 4374 4324
>> [49] 4386 4359 4311 4346 4300 4332 4336 4376 4319 4322 4344 4324 4324
>> 4359 4342 4378
>> [65] 4344 4324 4314 4318 4344 4311 4359 4304 4288 .... hasta 1000
>>
>> Con mtry le indicas el nº de variables que los árboles utilizarán
>> (recomendado m=√p para árboles de clasificación, y m = p/3 para los de
>> regresión), y con ntree el nº de árboles. Pero no encuentro cómo indicarle,
>> aunque sea, un tamaño máximo para los árboles, y en cualquier caso, me
>> parece extraño que se generen árboles con tantísimos nodos. Mi df tiene
>> unas 13.000 entradas y 19 variables, pero eso no es nada especial para que
>> me hiciese árboles tan grandes.
>>
>> No entiendo
>>
>>
>>
>>
>> Quoting Carlos Ortega <***@qualityexcellence.es>:
>>
>> Hola,
>>>
>>> No. Mira el ejemplo:
>>>
>>> data(iris)
>>>> iris.rf <- randomForest(Species ~ ., iris)
>>>> hist(treesize(iris.rf))
>>>> treesize(iris.rf)
>>>>
>>> [1] 7 10 13 7 10 6 9 8 7 9 8 8 6 8 7 9 7 10 6 16 4 13 11
>>> 10 8 11 10 8 7 9 9 6 11 7 5 10 12 10 7 12 12 8 11 10
>>> [45] 10 10 9 11 8 6 7 12 9 9 7 6 10 9 10 7 8 8 8 7 8 12 7
>>> 11 12 8 7 7 6 9 9 6 6 11 3 9 12 11 13 9 9 7 7 12
>>> [89] 11 6 6 8 6 11 9 10 10 6 7 14 7 10 8 7 9 11 7 14 7 7 8
>>> 9 7 6 9 8 9 8 13 9 10 10 9 11 6 7 9 10 8 9 9 6
>>> [133] 9 8 10 9 11 8 6 7 13 6 6 9 5 14 8 10 13 10 12 13 11 12 10
>>> 9 12 9 13 10 9 11 7 10 10 9 9 8 6 5 9 9 11 10 8 10
>>> [177] 4 10 12 10 10 8 10 11 9 5 7 8 8 15 8 7 7 9 12 9 10 9 12
>>> 8 10 8 11 9 6 7 9 12 7 8 10 12 6 14 11 4 6 6 7 9
>>> [221] 10 11 13 5 8 10 7 10 10 12 10 11 11 8 9 11 9 9 9 10 6 10 7
>>> 10 10 14 9 10 6 10 6 8 6 9 9 10 10 10 10 9 10 10 8 14
>>> [265] 8 11 6 11 9 9 9 8 11 7 8 11 8 4 9 11 6 8 10 8 9 10 8
>>> 9 8 11 11 9 12 14 7 9 8 9 10 10 11 8 12 12 12 4 10 11
>>> [309] 8 8 11 9 9 8 10 9 4 10 10 6 13 10 12 9 10 9 5 9 7 4 7
>>> 15 7 8 7 11 7 11 12 5 12 7 9 8 13 14 9 9 9 9 6 13
>>> [353] 13 7 10 6 5 6 10 6 8 8 9 11 9 11 7 7 11 8 6 10 13 7 12
>>> 11 14 7 10 11 9 8 6 8 10 8 9 6 10 10 6 7 7 7 11 13
>>> [397] 8 5 7 14 10 14 8 9 6 11 9 11 10 9 8 7 11 10 10 11 8 10 12
>>> 9 8 8 9 9 9 9 9 5 9 7 13 10 11 8 10 9 10 12 8 12
>>> [441] 9 10 4 7 11 7 10 4 6 13 8 7 10 9 7 6 8 9 7 11 8 8 9
>>> 10 5 8 11 12 6 5 10 10 6 10 10 5 10 13 9 13 10 10 6 12
>>> [485] 8 7 9 12 10 9 7 7 14 6 9 6 6 8 10 6
>>>
>>>> vtmp <- treesize(iris.rf)
>>>> sum(vtmp)
>>>>
>>>
>>> Por defecto al no especificar nada, el "ntrees" de randomForest() es 500.
>>> Efectivamente generas 500 árboles como ves en el número de elementos que
>>> devuelve "treesize(iris.rf)".
>>>
>>> Y cada árbol, tiene el número de nodos que ves en el valor de cada uno de
>>> los elementos que igualmente devuelve "treesize(iris.rf)": 7, 10, 13...
>>>
>>> Gracias,
>>> Carlos
>>>
>>> El 20 de enero de 2018, 10:36, Manuel Mendoza <***@mncn.csic.es>
>>> escribió:
>>>
>>>
>>>> Gracias Carlos y Javier, ntrees es el nº de árboles y treesize sus
>>>> respectivos tamaños (nº de nodos)
>>>>
>>>> ntree: Number of trees to grow. This should not be set to too small
>>>> ......
>>>>
>>>> treesize: Size of trees (number of nodes) in and ensemble.
>>>>
>>>>
>>>> Puse 1000 árboles (ntree=1000), si, pero la función treesize te da el nº
>>>> de nodos:
>>>>
>>>> treesize(RFfit, terminal=TRUE) me da un vector de 1000 elementos (uno por
>>>> cada árbol), todos ellos mayores que 4000 ????
>>>>
>>>> ¿tienen los 1000 árboles más de 4000 nodos cada uno? Parece extraño ¿no?
>>>>
>>>> Esa es mi pregunta
>>>>
>>>> Gracias nuevamente,
>>>> Manuel
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Quoting Carlos Ortega <***@qualityexcellence.es>:
>>>>
>>>> Hola,
>>>>
>>>>>
>>>>> A "treesize()" le tienes que pasar como parámetro el objeto randomForest
>>>>> de
>>>>> tu modelo.
>>>>> Y obtiene el número de nodos de cada uno de los árboles que hayas
>>>>> indicado
>>>>> en el valor del parámetros "ntrees" de "randomForest". Por defecto
>>>>> "ntrees"
>>>>> tiene un valor de 500.
>>>>> Mira qué valor tiene "ntrees" en tu modelo "randomForest", que
>>>>> seguramente
>>>>> le hayas indicado un valor de 1000...
>>>>>
>>>>> Saludos,
>>>>> Carlos Ortega
>>>>> https://eur03.safelinks.protection.outlook.com/?url=www.qualityexcellence.es&data=02%7C01%7C%7Cde747cae72ad456ee9ad08d5617ccf15%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636522111041521868&sdata=ansndtEpP5a1yruiSLgl%2FLfYDmXCztAL%2FU8fsJiTMGM%3D&reserved=0
>>>>>
>>>>> El 17 de enero de 2018, 14:29, Manuel Mendoza <***@mncn.csic.es>
>>>>> escribió:
>>>>>
>>>>> Buenas tardes a todos. El paquete randomForest tiene la función
>>>>> treesize,
>>>>>
>>>>>> que es el nº de nodos. Me dan valores realmente elevados (en torno a
>>>>>> 1000),
>>>>>> y eso me parece extraño. ¿sabéis si es así?
>>>>>> Gracias,
>>>>>> Manuel
>>>>>> --
>>>>>> Dr Manuel Mendoza
>>>>>> Department of Biogeography and Global Change
>>>>>> National Museum of Natural History (MNCN)
>>>>>> Spanish Scientific Council (CSIC)
>>>>>> C/ Serrano 115bis, 28006 MADRID
>>>>>> Spain
>>>>>>
>>>>>> _______________________________________________
>>>>>> R-help-es mailing list
>>>>>> R-help-***@r-project.org
>>>>>> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help-es&data=02%7C01%7C%7Cde747cae72ad456ee9ad08d5617ccf15%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636522111041521868&sdata=4qb729CZ8yuA7IgV%2BLTTaOXPA%2FVWvhDPusdEN8akPy0%3D&reserved=0
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> Saludos,
>>>>> Carlos Ortega
>>>>> https://eur03.safelinks.protection.outlook.com/?url=www.qualityexcellence.es&data=02%7C01%7C%7Cde747cae72ad456ee9ad08d5617ccf15%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636522111041521868&sdata=ansndtEpP5a1yruiSLgl%2FLfYDmXCztAL%2FU8fsJiTMGM%3D&reserved=0
>>>>>
>>>>>
>>>>
>>>> --
>>>> Dr Manuel Mendoza
>>>> Department of Biogeography and Global Change
>>>> National Museum of Natural History (MNCN)
>>>> Spanish Scientific Council (CSIC)
>>>> C/ Serrano 115bis, 28006 MADRID
>>>> Spain
>>>>
>>>>
>>>>
>>>
>>> --
>>> Saludos,
>>> Carlos Ortega
>>> https://eur03.safelinks.protection.outlook.com/?url=www.qualityexcellence.es&data=02%7C01%7C%7Cde747cae72ad456ee9ad08d5617ccf15%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636522111041521868&sdata=ansndtEpP5a1yruiSLgl%2FLfYDmXCztAL%2FU8fsJiTMGM%3D&reserved=0
>>>
>>
>>
>> --
>> Dr Manuel Mendoza
>> Department of Biogeography and Global Change
>> National Museum of Natural History (MNCN)
>> Spanish Scientific Council (CSIC)
>> C/ Serrano 115bis, 28006 MADRID
>> Spain
>>
>>
>
>
> --
> Saludos,
> Carlos Ortega
> https://eur03.safelinks.protection.outlook.com/?url=www.qualityexcellence.es&data=02%7C01%7C%7Cde747cae72ad456ee9ad08d5617ccf15%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636522111041521868&sdata=ansndtEpP5a1yruiSLgl%2FLfYDmXCztAL%2FU8fsJiTMGM%3D&reserved=0


--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain

_______________________________________________
R-help-es mailing list
R-help-***@r-project.org
https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help-es&data=02%7C01%7C%7Cde747cae72ad456ee9ad08d5617ccf15%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636522111041521868&sdata=4qb729CZ8yuA7IgV%2BLTTaOXPA%2FVWvhDPusdEN8akPy0%3D&reserved=0

[[alternative HTML version deleted]]
Manuel Mendoza
2018-01-22 18:09:42 UTC
Permalink
Gracias Jesús, lo haré.

Quoting Jesús Para Fernández <***@hotmail.com>:

> Prueba con xgboost tb que funcionan muy bien!
> ________________________________
> De: R-help-es <r-help-es-***@r-project.org> en nombre de Manuel
> Mendoza <***@mncn.csic.es>
> Enviado: lunes, 22 de enero de 2018 10:44
> Para: Carlos Ortega
> Cc: r-help-***@r-project.org
> Asunto: Re: [R-es] Random Forests
>
> Muchas gracias Carlos, como siempre.
> Es raro que se me pasase. En su momento miré todos los argumentos del
> RF, como hago siempre, pero ese lo había olvidado. La verdad es que
> funcionaba estupendamente, pero me parecía extraño. Aunque dado que
> los RF no sobreajustan, no hay problema con que sus árboles sean todo
> lo grandes que quieras. Lo he testado con una base de datos externa y
> explica un porcentaje de la varianza mayor del que esperaba. Mejor que
> con un simple bagging y mucho mejor que con cualquier árbol o
> regresión múltiple. Ahora estoy probando con gmb, a ver que tal.
> Un saludo.
> Manuel
>
>
> Quoting Carlos Ortega <***@qualityexcellence.es>:
>
>> Lo defines con el parámetro "maxnodes"... si no lo delimitas, el árbol
>> crece hasta el máximo posible.
>> Y si lo estás usando para un caso de clasificación, el árbol se extiende
>> hasta el límite en el que en el nodo hay un (1) caso.
>>
>> [image: Imágenes integradas 2]
>>
>> Por eso, dependiendo de tu problema, y esto es un caso de optimización.
>> Juega también con el parámetro "nodesize".
>>
>>
>> [image: Imágenes integradas 3]
>>
>> Explora combinaciones de los dos parámetros para ver qué caso es el que
>> mejor respuesta te ofrece sin penalizarte en complejidad.
>>
>> Gracias,
>> Carlos.
>>
>>
>>
>>
>>
>> El 20 de enero de 2018, 18:17, Manuel Mendoza <***@mncn.csic.es>
>> escribió:
>>
>>> Si, Carlos. Yo hago lo mismo, pero esos mismos numeritos salen enormes.
>>>
>>> treesize(RFfit)
>>>>
>>>
>>> [1] 4304 4302 4311 4319 4343 4298 4298 4311 4349 4327 4331 4317 4294
>>> 4321 4283 4362
>>> [17] 4300 4330 4266 4331 4308 4352 4294 4315 4372 4349 4331 4347 4329
>>> 4348 4298 4335
>>> [33] 4346 4396 4345 4313 4293 4276 4353 4272 4304 4325 4317 4336 4308
>>> 4351 4374 4324
>>> [49] 4386 4359 4311 4346 4300 4332 4336 4376 4319 4322 4344 4324 4324
>>> 4359 4342 4378
>>> [65] 4344 4324 4314 4318 4344 4311 4359 4304 4288 .... hasta 1000
>>>
>>> Con mtry le indicas el nº de variables que los árboles utilizarán
>>> (recomendado m=√p para árboles de clasificación, y m = p/3 para los de
>>> regresión), y con ntree el nº de árboles. Pero no encuentro cómo indicarle,
>>> aunque sea, un tamaño máximo para los árboles, y en cualquier caso, me
>>> parece extraño que se generen árboles con tantísimos nodos. Mi df tiene
>>> unas 13.000 entradas y 19 variables, pero eso no es nada especial para que
>>> me hiciese árboles tan grandes.
>>>
>>> No entiendo
>>>
>>>
>>>
>>>
>>> Quoting Carlos Ortega <***@qualityexcellence.es>:
>>>
>>> Hola,
>>>>
>>>> No. Mira el ejemplo:
>>>>
>>>> data(iris)
>>>>> iris.rf <- randomForest(Species ~ ., iris)
>>>>> hist(treesize(iris.rf))
>>>>> treesize(iris.rf)
>>>>>
>>>> [1] 7 10 13 7 10 6 9 8 7 9 8 8 6 8 7 9 7 10 6 16 4 13 11
>>>> 10 8 11 10 8 7 9 9 6 11 7 5 10 12 10 7 12 12 8 11 10
>>>> [45] 10 10 9 11 8 6 7 12 9 9 7 6 10 9 10 7 8 8 8 7 8 12 7
>>>> 11 12 8 7 7 6 9 9 6 6 11 3 9 12 11 13 9 9 7 7 12
>>>> [89] 11 6 6 8 6 11 9 10 10 6 7 14 7 10 8 7 9 11 7 14 7 7 8
>>>> 9 7 6 9 8 9 8 13 9 10 10 9 11 6 7 9 10 8 9 9 6
>>>> [133] 9 8 10 9 11 8 6 7 13 6 6 9 5 14 8 10 13 10 12 13 11 12 10
>>>> 9 12 9 13 10 9 11 7 10 10 9 9 8 6 5 9 9 11 10 8 10
>>>> [177] 4 10 12 10 10 8 10 11 9 5 7 8 8 15 8 7 7 9 12 9 10 9 12
>>>> 8 10 8 11 9 6 7 9 12 7 8 10 12 6 14 11 4 6 6 7 9
>>>> [221] 10 11 13 5 8 10 7 10 10 12 10 11 11 8 9 11 9 9 9 10 6 10 7
>>>> 10 10 14 9 10 6 10 6 8 6 9 9 10 10 10 10 9 10 10 8 14
>>>> [265] 8 11 6 11 9 9 9 8 11 7 8 11 8 4 9 11 6 8 10 8 9 10 8
>>>> 9 8 11 11 9 12 14 7 9 8 9 10 10 11 8 12 12 12 4 10 11
>>>> [309] 8 8 11 9 9 8 10 9 4 10 10 6 13 10 12 9 10 9 5 9 7 4 7
>>>> 15 7 8 7 11 7 11 12 5 12 7 9 8 13 14 9 9 9 9 6 13
>>>> [353] 13 7 10 6 5 6 10 6 8 8 9 11 9 11 7 7 11 8 6 10 13 7 12
>>>> 11 14 7 10 11 9 8 6 8 10 8 9 6 10 10 6 7 7 7 11 13
>>>> [397] 8 5 7 14 10 14 8 9 6 11 9 11 10 9 8 7 11 10 10 11 8 10 12
>>>> 9 8 8 9 9 9 9 9 5 9 7 13 10 11 8 10 9 10 12 8 12
>>>> [441] 9 10 4 7 11 7 10 4 6 13 8 7 10 9 7 6 8 9 7 11 8 8 9
>>>> 10 5 8 11 12 6 5 10 10 6 10 10 5 10 13 9 13 10 10 6 12
>>>> [485] 8 7 9 12 10 9 7 7 14 6 9 6 6 8 10 6
>>>>
>>>>> vtmp <- treesize(iris.rf)
>>>>> sum(vtmp)
>>>>>
>>>>
>>>> Por defecto al no especificar nada, el "ntrees" de randomForest() es 500.
>>>> Efectivamente generas 500 árboles como ves en el número de elementos que
>>>> devuelve "treesize(iris.rf)".
>>>>
>>>> Y cada árbol, tiene el número de nodos que ves en el valor de cada uno de
>>>> los elementos que igualmente devuelve "treesize(iris.rf)": 7, 10, 13...
>>>>
>>>> Gracias,
>>>> Carlos
>>>>
>>>> El 20 de enero de 2018, 10:36, Manuel Mendoza <***@mncn.csic.es>
>>>> escribió:
>>>>
>>>>
>>>>> Gracias Carlos y Javier, ntrees es el nº de árboles y treesize sus
>>>>> respectivos tamaños (nº de nodos)
>>>>>
>>>>> ntree: Number of trees to grow. This should not be set to too small
>>>>> ......
>>>>>
>>>>> treesize: Size of trees (number of nodes) in and ensemble.
>>>>>
>>>>>
>>>>> Puse 1000 árboles (ntree=1000), si, pero la función treesize te da el nº
>>>>> de nodos:
>>>>>
>>>>> treesize(RFfit, terminal=TRUE) me da un vector de 1000 elementos (uno por
>>>>> cada árbol), todos ellos mayores que 4000 ????
>>>>>
>>>>> ¿tienen los 1000 árboles más de 4000 nodos cada uno? Parece extraño ¿no?
>>>>>
>>>>> Esa es mi pregunta
>>>>>
>>>>> Gracias nuevamente,
>>>>> Manuel
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Quoting Carlos Ortega <***@qualityexcellence.es>:
>>>>>
>>>>> Hola,
>>>>>
>>>>>>
>>>>>> A "treesize()" le tienes que pasar como parámetro el objeto randomForest
>>>>>> de
>>>>>> tu modelo.
>>>>>> Y obtiene el número de nodos de cada uno de los árboles que hayas
>>>>>> indicado
>>>>>> en el valor del parámetros "ntrees" de "randomForest". Por defecto
>>>>>> "ntrees"
>>>>>> tiene un valor de 500.
>>>>>> Mira qué valor tiene "ntrees" en tu modelo "randomForest", que
>>>>>> seguramente
>>>>>> le hayas indicado un valor de 1000...
>>>>>>
>>>>>> Saludos,
>>>>>> Carlos Ortega
>>>>>> https://eur03.safelinks.protection.outlook.com/?url=www.qualityexcellence.es&data=02%7C01%7C%7Cde747cae72ad456ee9ad08d5617ccf15%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636522111041521868&sdata=ansndtEpP5a1yruiSLgl%2FLfYDmXCztAL%2FU8fsJiTMGM%3D&reserved=0
>>>>>>
>>>>>> El 17 de enero de 2018, 14:29, Manuel Mendoza <***@mncn.csic.es>
>>>>>> escribió:
>>>>>>
>>>>>> Buenas tardes a todos. El paquete randomForest tiene la función
>>>>>> treesize,
>>>>>>
>>>>>>> que es el nº de nodos. Me dan valores realmente elevados (en torno a
>>>>>>> 1000),
>>>>>>> y eso me parece extraño. ¿sabéis si es así?
>>>>>>> Gracias,
>>>>>>> Manuel
>>>>>>> --
>>>>>>> Dr Manuel Mendoza
>>>>>>> Department of Biogeography and Global Change
>>>>>>> National Museum of Natural History (MNCN)
>>>>>>> Spanish Scientific Council (CSIC)
>>>>>>> C/ Serrano 115bis, 28006 MADRID
>>>>>>> Spain
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> R-help-es mailing list
>>>>>>> R-help-***@r-project.org
>>>>>>> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help-es&data=02%7C01%7C%7Cde747cae72ad456ee9ad08d5617ccf15%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636522111041521868&sdata=4qb729CZ8yuA7IgV%2BLTTaOXPA%2FVWvhDPusdEN8akPy0%3D&reserved=0
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> Saludos,
>>>>>> Carlos Ortega
>>>>>> https://eur03.safelinks.protection.outlook.com/?url=www.qualityexcellence.es&data=02%7C01%7C%7Cde747cae72ad456ee9ad08d5617ccf15%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636522111041521868&sdata=ansndtEpP5a1yruiSLgl%2FLfYDmXCztAL%2FU8fsJiTMGM%3D&reserved=0
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> Dr Manuel Mendoza
>>>>> Department of Biogeography and Global Change
>>>>> National Museum of Natural History (MNCN)
>>>>> Spanish Scientific Council (CSIC)
>>>>> C/ Serrano 115bis, 28006 MADRID
>>>>> Spain
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> Saludos,
>>>> Carlos Ortega
>>>> https://eur03.safelinks.protection.outlook.com/?url=www.qualityexcellence.es&data=02%7C01%7C%7Cde747cae72ad456ee9ad08d5617ccf15%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636522111041521868&sdata=ansndtEpP5a1yruiSLgl%2FLfYDmXCztAL%2FU8fsJiTMGM%3D&reserved=0
>>>>
>>>
>>>
>>> --
>>> Dr Manuel Mendoza
>>> Department of Biogeography and Global Change
>>> National Museum of Natural History (MNCN)
>>> Spanish Scientific Council (CSIC)
>>> C/ Serrano 115bis, 28006 MADRID
>>> Spain
>>>
>>>
>>
>>
>> --
>> Saludos,
>> Carlos Ortega
>> https://eur03.safelinks.protection.outlook.com/?url=www.qualityexcellence.es&data=02%7C01%7C%7Cde747cae72ad456ee9ad08d5617ccf15%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636522111041521868&sdata=ansndtEpP5a1yruiSLgl%2FLfYDmXCztAL%2FU8fsJiTMGM%3D&reserved=0
>
>
> --
> Dr Manuel Mendoza
> Department of Biogeography and Global Change
> National Museum of Natural History (MNCN)
> Spanish Scientific Council (CSIC)
> C/ Serrano 115bis, 28006 MADRID
> Spain
>
> _______________________________________________
> R-help-es mailing list
> R-help-***@r-project.org
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help-es&data=02%7C01%7C%7Cde747cae72ad456ee9ad08d5617ccf15%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636522111041521868&sdata=4qb729CZ8yuA7IgV%2BLTTaOXPA%2FVWvhDPusdEN8akPy0%3D&reserved=0


--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain
Manuel Mendoza
2018-01-20 09:49:17 UTC
Permalink
Buenas. El Paquete pdp es muy fácil de usar, pero cuando se lo aplico
a mis datos me da:

Error in eval(stats::getCall(object)$data) : object 'x.data' not found.

Os copio abajo un ejemplo de aplicación a un RF. El mio es de un
boosted regression trees (paquete gbm). No sé si esa puede ser la
razón del error. En el paquete pdp no especifica que sea solo para RF,
aunque en los ejemplos que encontré nunca eran de boosted ... Solo de
RF y SVM.

Gracias,
Manuel


library(pdp)
data (boston) # load the boston housing data
set.seed(101) # for reproducibility
boston.rf <- randomForest(cmedv ~ ., data = boston)

# Partial dependence of cmedv on lstat and rm

pd <- partial(boston.rf, pred.var = c("lstat", "rm"), chull = TRUE)

head(pd) # print first 6 rows
#> lstat rm yhat
#> 1 7.5284 3.66538 24.13683
#> 2 8.2532 3.66538 23.24916
#> 3 8.9780 3.66538 23.13119
#> 4 9.7028 3.66538 22.13531
#> 5 10.4276 3.66538 20.62331
#> 6 11.1524 3.66538 20.51258







Quoting Carlos Ortega <***@qualityexcellence.es>:

> Hola,
>
> A "treesize()" le tienes que pasar como parámetro el objeto randomForest de
> tu modelo.
> Y obtiene el número de nodos de cada uno de los árboles que hayas indicado
> en el valor del parámetros "ntrees" de "randomForest". Por defecto "ntrees"
> tiene un valor de 500.
> Mira qué valor tiene "ntrees" en tu modelo "randomForest", que seguramente
> le hayas indicado un valor de 1000...
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
> El 17 de enero de 2018, 14:29, Manuel Mendoza <***@mncn.csic.es>
> escribió:
>
>> Buenas tardes a todos. El paquete randomForest tiene la función treesize,
>> que es el nº de nodos. Me dan valores realmente elevados (en torno a 1000),
>> y eso me parece extraño. ¿sabéis si es así?
>> Gracias,
>> Manuel
>> --
>> Dr Manuel Mendoza
>> Department of Biogeography and Global Change
>> National Museum of Natural History (MNCN)
>> Spanish Scientific Council (CSIC)
>> C/ Serrano 115bis, 28006 MADRID
>> Spain
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-***@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es


--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain
Manuel Mendoza
2018-01-20 12:55:22 UTC
Permalink
Acabo de encontrar que si sirve para gbm, por lo que no es esa la razón.

Aquí: https://journal.r-project.org/archive/2017/RJ-2017-016/RJ-2017-016.pdf







Quoting Manuel Mendoza <***@mncn.csic.es>:

> Buenas. El Paquete pdp es muy fácil de usar, pero cuando se lo
> aplico a mis datos me da:
>
> Error in eval(stats::getCall(object)$data) : object 'x.data' not found.
>
> Os copio abajo un ejemplo de aplicación a un RF. El mio es de un
> boosted regression trees (paquete gbm). No sé si esa puede ser la
> razón del error. En el paquete pdp no especifica que sea solo para
> RF, aunque en los ejemplos que encontré nunca eran de boosted ...
> Solo de RF y SVM.
>
> Gracias,
> Manuel
>
>
> library(pdp)
> data (boston) # load the boston housing data
> set.seed(101) # for reproducibility
> boston.rf <- randomForest(cmedv ~ ., data = boston)
>
> # Partial dependence of cmedv on lstat and rm
>
> pd <- partial(boston.rf, pred.var = c("lstat", "rm"), chull = TRUE)
>
> head(pd) # print first 6 rows
> #> lstat rm yhat
> #> 1 7.5284 3.66538 24.13683
> #> 2 8.2532 3.66538 23.24916
> #> 3 8.9780 3.66538 23.13119
> #> 4 9.7028 3.66538 22.13531
> #> 5 10.4276 3.66538 20.62331
> #> 6 11.1524 3.66538 20.51258
>
>
>
>
>
>
>
> Quoting Carlos Ortega <***@qualityexcellence.es>:
>
>> Hola,
>>
>> A "treesize()" le tienes que pasar como parámetro el objeto randomForest de
>> tu modelo.
>> Y obtiene el número de nodos de cada uno de los árboles que hayas indicado
>> en el valor del parámetros "ntrees" de "randomForest". Por defecto "ntrees"
>> tiene un valor de 500.
>> Mira qué valor tiene "ntrees" en tu modelo "randomForest", que seguramente
>> le hayas indicado un valor de 1000...
>>
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>> El 17 de enero de 2018, 14:29, Manuel Mendoza <***@mncn.csic.es>
>> escribió:
>>
>>> Buenas tardes a todos. El paquete randomForest tiene la función treesize,
>>> que es el nº de nodos. Me dan valores realmente elevados (en torno a 1000),
>>> y eso me parece extraño. ¿sabéis si es así?
>>> Gracias,
>>> Manuel
>>> --
>>> Dr Manuel Mendoza
>>> Department of Biogeography and Global Change
>>> National Museum of Natural History (MNCN)
>>> Spanish Scientific Council (CSIC)
>>> C/ Serrano 115bis, 28006 MADRID
>>> Spain
>>>
>>> _______________________________________________
>>> R-help-es mailing list
>>> R-help-***@r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>
>>
>>
>>
>> --
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>
>
> --
> Dr Manuel Mendoza
> Department of Biogeography and Global Change
> National Museum of Natural History (MNCN)
> Spanish Scientific Council (CSIC)
> C/ Serrano 115bis, 28006 MADRID
> Spain
>
> _______________________________________________
> R-help-es mailing list
> R-help-***@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es


--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain
Carlos Ortega
2018-01-20 13:15:17 UTC
Permalink
Hola,

Sí, y en la ayuda sobre el objeto que utiliza "partial()" también viene que
es posible...

object

A fitted model object of appropriate class (e.g., "gbm", "lm",
"randomForest", "train", etc.).

El 20 de enero de 2018, 13:55, Manuel Mendoza <***@mncn.csic.es>
escribió:

>
> Acabo de encontrar que si sirve para gbm, por lo que no es esa la razón.
>
> Aquí: https://journal.r-project.org/archive/2017/RJ-2017-016/RJ-20
> 17-016.pdf
>
>
>
>
>
>
>
>
> Quoting Manuel Mendoza <***@mncn.csic.es>:
>
> Buenas. El Paquete pdp es muy fácil de usar, pero cuando se lo aplico a
>> mis datos me da:
>>
>> Error in eval(stats::getCall(object)$data) : object 'x.data' not found.
>>
>> Os copio abajo un ejemplo de aplicación a un RF. El mio es de un boosted
>> regression trees (paquete gbm). No sé si esa puede ser la razón del error.
>> En el paquete pdp no especifica que sea solo para RF, aunque en los
>> ejemplos que encontré nunca eran de boosted ... Solo de RF y SVM.
>>
>> Gracias,
>> Manuel
>>
>>
>> library(pdp)
>> data (boston) # load the boston housing data
>> set.seed(101) # for reproducibility
>> boston.rf <- randomForest(cmedv ~ ., data = boston)
>>
>> # Partial dependence of cmedv on lstat and rm
>>
>> pd <- partial(boston.rf, pred.var = c("lstat", "rm"), chull = TRUE)
>>
>> head(pd) # print first 6 rows
>> #> lstat rm yhat
>> #> 1 7.5284 3.66538 24.13683
>> #> 2 8.2532 3.66538 23.24916
>> #> 3 8.9780 3.66538 23.13119
>> #> 4 9.7028 3.66538 22.13531
>> #> 5 10.4276 3.66538 20.62331
>> #> 6 11.1524 3.66538 20.51258
>>
>>
>>
>>
>>
>>
>>
>> Quoting Carlos Ortega <***@qualityexcellence.es>:
>>
>> Hola,
>>>
>>> A "treesize()" le tienes que pasar como parámetro el objeto randomForest
>>> de
>>> tu modelo.
>>> Y obtiene el número de nodos de cada uno de los árboles que hayas
>>> indicado
>>> en el valor del parámetros "ntrees" de "randomForest". Por defecto
>>> "ntrees"
>>> tiene un valor de 500.
>>> Mira qué valor tiene "ntrees" en tu modelo "randomForest", que
>>> seguramente
>>> le hayas indicado un valor de 1000...
>>>
>>> Saludos,
>>> Carlos Ortega
>>> www.qualityexcellence.es
>>>
>>> El 17 de enero de 2018, 14:29, Manuel Mendoza <***@mncn.csic.es>
>>> escribió:
>>>
>>> Buenas tardes a todos. El paquete randomForest tiene la función treesize,
>>>> que es el nº de nodos. Me dan valores realmente elevados (en torno a
>>>> 1000),
>>>> y eso me parece extraño. ¿sabéis si es así?
>>>> Gracias,
>>>> Manuel
>>>> --
>>>> Dr Manuel Mendoza
>>>> Department of Biogeography and Global Change
>>>> National Museum of Natural History (MNCN)
>>>> Spanish Scientific Council (CSIC)
>>>> C/ Serrano 115bis, 28006 MADRID
>>>> Spain
>>>>
>>>> _______________________________________________
>>>> R-help-es mailing list
>>>> R-help-***@r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>>
>>>>
>>>
>>>
>>> --
>>> Saludos,
>>> Carlos Ortega
>>> www.qualityexcellence.es
>>>
>>
>>
>> --
>> Dr Manuel Mendoza
>> Department of Biogeography and Global Change
>> National Museum of Natural History (MNCN)
>> Spanish Scientific Council (CSIC)
>> C/ Serrano 115bis, 28006 MADRID
>> Spain
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-***@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
> --
> Dr Manuel Mendoza
> Department of Biogeography and Global Change
> National Museum of Natural History (MNCN)
> Spanish Scientific Council (CSIC)
> C/ Serrano 115bis, 28006 MADRID
> Spain
>
> _______________________________________________
> R-help-es mailing list
> R-help-***@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



--
Saludos,
Carlos Ortega
www.qualityexcellence.es

[[alternative HTML version deleted]]
Loading...