[R-es] gbm.step para clasificación no binaria

Carlos Ortega cof en qualityexcellence.es
Mie Feb 21 12:46:00 CET 2018


​Si ya vas a utilizar "gbm", por justamente mejorar la capacidad
predictiva, usaría el "gbm" de H2O o mejor "ligthgbm"...
El porqué...​

https://github.com/szilard/GBM-perf

Saludos,
Carlos Ortega
www.qualityexcellence.es

El 21 de febrero de 2018, 10:49, Manuel Mendoza <mmendoza en mncn.csic.es>
escribió:

>
> Bueno, finalmente estaba equivocado en relación a la validación cruzada;
> resulta que gbm tiene el comando gbm.perf(gbm.model, method="cv") que te
> indica el mejor nº de árboles por VC. Lo pongo por si a alguien le pudiera
> interesar. Los gradient boosted son, sin duda, uno de los algoritmos de
> machine learning con mayor capacidad predictiva.
> Un saludo.
>
>
> Quoting Carlos Ortega <cof en qualityexcellence.es>:
>
> Hola,
>>
>> Varias cosas:
>>
>>    - Puedes usar "gbm" y para los "partial plots" utilizar el paquete
>> "pdp"
>>    que considera varios tipos de modelos, entre ellos "gbm".
>>    - También puedes usar "xgboost" que tiene una función parecida a esta
>>
>>    que quieres usar "xgb.cv" justamente para encontrar el modelo óptimo.
>>
>> De todas formas, por experiencia sí que los randomForest sobreajustan
>> cuando fuerzas un número alto de niveles (en la función en Python
>> RandomForestClassifier con el parámetro "max_depth" que no veo la
>> equivalente en randomForest o ranger de R...
>>
>
> Saludos,
>> Carlos Ortega.
>>
>> El 19 de febrero de 2018, 22:02, Manuel Mendoza <mmendoza en mncn.csic.es>
>> escribió:
>>
>>
>>> Hola de nuevo. Se me olvidaba la principal razón para utilizar gbm.step
>>> del paquete dismo. Como sabéis, los boosted si sobreajustan (a diferencia
>>> de los random forest o cualquier otro bootstrap) pero gbm.step hace
>>> validación cruzada para determinar el nº óptimo de árboles y evitarlo. Es
>>> fundamental.
>>>
>>>
>>>
>>> La opción que me queda, Carlos, es hacerlo con gbm, pero muchas veces, y
>>> usar el promedio.Vamos, hacer yo mismo un bootstrap con muchos boosted.
>>> Los
>>> métodos basados en bootstrap no sobreajustan, precisamente porque, como
>>> quizás sepas, al sobreajustar aumenta el error debido a la varianza, y el
>>> promedio de muchas predicciones con elevada varianza tiene mucha menos
>>> varianza que cada una de ellas.
>>>
>>>
>>>
>>>
>>>
>>> Quoting Carlos Ortega <cof en qualityexcellence.es>:
>>>
>>> Hola,
>>>
>>>>
>>>> Sí, tienes razón...
>>>> ¿No puedes usar la propia función "gbm" del paquete "gbm"?...
>>>>
>>>> Gracias,
>>>> Carlos Ortega
>>>> www.qualityexcellence.es
>>>>
>>>> El 19 de febrero de 2018, 18:01, Manuel Mendoza <mmendoza en mncn.csic.es>
>>>> escribió:
>>>>
>>>>
>>>> Gracias Carlos. Hasta donde yo entiendo si las hay:
>>>>>
>>>>> El argumento family puede ser:
>>>>>
>>>>> "gaussian" (for minimizing squared error); por lo que tiene que ser
>>>>> numérica
>>>>> "bernoulli" (logistic regression for 0-1 out-comes); binaria por
>>>>> narices
>>>>> "poisson" (count outcomes; requires the response to be a positive
>>>>> integer); numérica también, pues.
>>>>>
>>>>> La única podría ser "laplace" (for minimizing absolute loss), pero me
>>>>> da
>>>>> este error: Error in while (delta.deviance > tolerance.test & n.fitted
>>>>> <
>>>>> max.trees) { :
>>>>>   missing value where TRUE/FALSE needed
>>>>>
>>>>> Supongo que loss se refiere a la función de pérdida, y como habla de
>>>>> deviance (la función de pérdida por defecto en gbm) pienso que también
>>>>> es
>>>>> para variable respuesta numérica, aunque no lo encontré por ningún
>>>>> lado.
>>>>> Por eso pregunté.
>>>>>
>>>>> Probaré sin indicar la family, a ver si funciona.
>>>>> Gracias,
>>>>> Manuel
>>>>>
>>>>>
>>>>>
>>>>> Quoting Carlos Ortega <cof en qualityexcellence.es>:
>>>>>
>>>>> Hola,
>>>>>
>>>>>
>>>>>> No hay ninguna limitación en la ayuda de la función en este sentido.
>>>>>> Tan solo se indica que han de existir dos niveles en la variable
>>>>>> predictora, vaya que al menos sea binaria...
>>>>>> En la función en el parámetro "gbm.y" es donde indicas qué columna es
>>>>>> la
>>>>>> predictora. No hay otro parámetro donde por otro lado le indiques si
>>>>>> es
>>>>>> un
>>>>>> modelo binario o multinominal...
>>>>>>
>>>>>> Saludos,
>>>>>> Carlos Ortega
>>>>>> www.qualityexcellence.es
>>>>>>
>>>>>>
>>>>>> 2018-02-19 14:03 GMT+01:00 Manuel Mendoza <mmendoza en mncn.csic.es>:
>>>>>>
>>>>>> Hola erreros, ¿sabéis si gbm.step puede usarse para clasificación no
>>>>>>
>>>>>> binaria?
>>>>>>> Gracias
>>>>>>> --
>>>>>>> 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
>>
>
>
> --
> 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]]



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