Discussion:
[R-es] gbm.step para clasificación no binaria
Manuel Mendoza
2018-02-19 13:03:31 UTC
Permalink
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
Carlos Ortega
2018-02-19 14:45:34 UTC
Permalink
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
Post by Manuel Mendoza
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
https://stat.ethz.ch/mailman/listinfo/r-help-es
--
Saludos,
Carlos Ortega
www.qualityexcellence.es

[[alternative HTML version deleted]]
Manuel Mendoza
2018-02-19 17:01:21 UTC
Permalink
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
Post by Carlos Ortega
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
Post by Manuel Mendoza
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
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-02-19 17:09:47 UTC
Permalink
Hola,

Sí, tienes razón...
¿No puedes usar la propia función "gbm" del paquete "gbm"?...

Gracias,
Carlos Ortega
www.qualityexcellence.es
Post by Manuel Mendoza
"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 <
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
Hola,
Post by Carlos Ortega
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
Hola erreros, ¿sabéis si gbm.step puede usarse para clasificación no
Post by Manuel Mendoza
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
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-02-19 17:57:39 UTC
Permalink
Bueno, primero te comento que si no le indico la family me hace
Bernuilli y da error por no ser binaria.

La razón de aplicar gbm.step del paquete dismo es que da una
información fundamental, como la interacción entre las variables o los
partial plots. La interacción te la representa en 3D y es super
explicativo.

El paquete randomforest también me da los partialplots y sale muy
bien, pero me gustaría probar también con boosted. Lo haré con gbm,
aunque no obtenga las interacciones.

Gracias una vez más,
Manuel
Post by Carlos Ortega
Hola,
Sí, tienes razón...
¿No puedes usar la propia función "gbm" del paquete "gbm"?...
Gracias,
Carlos Ortega
www.qualityexcellence.es
Post by Manuel Mendoza
"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 <
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
Hola,
Post by Carlos Ortega
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
Hola erreros, ¿sabéis si gbm.step puede usarse para clasificación no
Post by Manuel Mendoza
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
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
Manuel Mendoza
2018-02-19 21:02:42 UTC
Permalink
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.
Post by Carlos Ortega
Hola,
Sí, tienes razón...
¿No puedes usar la propia función "gbm" del paquete "gbm"?...
Gracias,
Carlos Ortega
www.qualityexcellence.es
Post by Manuel Mendoza
"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 <
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
Hola,
Post by Carlos Ortega
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
Hola erreros, ¿sabéis si gbm.step puede usarse para clasificación no
Post by Manuel Mendoza
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
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-02-19 21:27:12 UTC
Permalink
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.
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.
Hola,
Post by Carlos Ortega
Sí, tienes razón...
¿No puedes usar la propia función "gbm" del paquete "gbm"?...
Gracias,
Carlos Ortega
www.qualityexcellence.es
Post by Manuel Mendoza
"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 <
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
Hola,
Post by Carlos Ortega
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
Hola erreros, ¿sabéis si gbm.step puede usarse para clasificación no
Post by Manuel Mendoza
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
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

[[alternative HTML version deleted]]
Manuel Mendoza
2018-02-19 21:57:24 UTC
Permalink
Gracias, les echaré un ojo.
Post by Carlos Ortega
Hola,
- 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.
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.
Hola,
Post by Carlos Ortega
Sí, tienes razón...
¿No puedes usar la propia función "gbm" del paquete "gbm"?...
Gracias,
Carlos Ortega
www.qualityexcellence.es
Post by Manuel Mendoza
"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 <
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
Hola,
Post by Carlos Ortega
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
Hola erreros, ¿sabéis si gbm.step puede usarse para clasificación no
Post by Manuel Mendoza
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
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
Manuel Mendoza
2018-02-21 09:49:36 UTC
Permalink
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.
Post by Carlos Ortega
Hola,
- 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.
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.
Hola,
Post by Carlos Ortega
Sí, tienes razón...
¿No puedes usar la propia función "gbm" del paquete "gbm"?...
Gracias,
Carlos Ortega
www.qualityexcellence.es
Post by Manuel Mendoza
"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 <
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
Hola,
Post by Carlos Ortega
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
Hola erreros, ¿sabéis si gbm.step puede usarse para clasificación no
Post by Manuel Mendoza
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
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
Carlos Ortega
2018-02-21 11:46:00 UTC
Permalink
​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
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.
Hola,
Post by Carlos Ortega
- 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,
Post by Carlos Ortega
Carlos Ortega.
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.
Hola,
Post by Carlos Ortega
Sí, tienes razón...
¿No puedes usar la propia función "gbm" del paquete "gbm"?...
Gracias,
Carlos Ortega
www.qualityexcellence.es
Post by Manuel Mendoza
"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 <
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
Hola,
Post by Carlos Ortega
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
Hola erreros, ¿sabéis si gbm.step puede usarse para clasificación no
binaria?
Post by Manuel Mendoza
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
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]]
Loading...