[R-es] Random Forests
Carlos Ortega
cof en qualityexcellence.es
Sab Ene 20 20:49:42 CET 2018
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 <mmendoza en 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 <cof en 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 <mmendoza en 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 <cof en 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 <mmendoza en 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-es en 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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20180120/1775bb73/attachment-0001.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: Captura de pantalla 2018-01-20 a las 20.46.19.png
Type: image/png
Size: 95716 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20180120/1775bb73/attachment-0002.png>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: Captura de pantalla 2018-01-20 a las 20.44.09.png
Type: image/png
Size: 57313 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20180120/1775bb73/attachment-0003.png>
Más información sobre la lista de distribución R-help-es