Buenas, ¿alguien ha calculado alguna vez partial dependence plots con XgBoost? Yo lo he conseguido con el paquete PDP y clasificación binaria, pero llevo horas intentándolo con regresión y no hay forma. Apenas hay ejemplos en la red, y utilizan caret o h2o, que de momento no me sirven. Gracias, Manuel
[R-es] PDP con XgBoost
3 messages · eric, Manuel Mendoza
Quizá te sirve asÃ:
Se calcula el pdp con la función partial() del paquete pdp,
luego graficas con ggplot():
# CALCULAR EL PDP
bdst_edadagnospdp <- pdp::partial(dat.rfr, pred.var="edadagnos")
# CAMBIAR EL NOMBRE A LA COLUMNA DE DATOS CALCULADOS, PARA EL GRAFICO
names(bdst_edadagnospdp)[2] <- "bdst_pb"
# GRAFICAR LA CURVA CALCULADA POR PDP SOBRE EL SET DE DATOS PARA TESTING
ggplot(dat.test, aes(edadagnos,bdst_pb)) +
geom_density_2d_filled(show.legend = FALSE) + geom_point(size=0.1,
col="white") + ylim(-1,6) + xlim(8,13) +
geom_line(data=bdst_edadagnospdp, col="red", size=1.5)
la curva calculada con pdp se agrega sobre los datos para testing al
final del ggplot, en la parte de geom_line(data=bdst_edadagnospdp,
col="red", size=1.5)
puedes mirar los detalles de la funcion pdp con ?pdp.
Ojalá te sirva,
Saludos !!
Eric.
On Wed, 14 Apr 2021 21:03:39 +0200
Manuel Mendoza <mmendoza en fulbrightmail.org> wrote:
Buenas, ¿alguien ha calculado alguna vez partial dependence plots con XgBoost? Yo lo he conseguido con el paquete PDP y clasificación binaria, pero llevo horas intentándolo con regresión y no hay forma. Apenas hay ejemplos en la red, y utilizan caret o h2o, que de momento no me sirven. Gracias, Manuel [[alternative HTML version deleted]]
_______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Gracias Eric (veo que tú también trasnochas), asà es como lo hice con
clasificación binaria y funcionó. Con regresión me da este error (entre
otros):
Error in if (object$params$objective %in% c("reg:linear", "reg:logistic",
: argumento tiene longitud cero
pero todo esto es bastante nuevo y apenas hay información en la red.
De todas formas, con DALEX, que me aconsejó Carlos, es rápido y sencillo.
Además, hace LIME y Shapley, que también me interesan, por lo que me paso a
DALEX.
Gracias, en cualquier caso,
Manuel
El jue, 15 abr 2021 a las 3:58, Eric Concha (<ericconchamunoz en gmail.com>)
escribió:
Quizá te sirve asÃ:
Se calcula el pdp con la función partial() del paquete pdp,
luego graficas con ggplot():
# CALCULAR EL PDP
bdst_edadagnospdp <- pdp::partial(dat.rfr, pred.var="edadagnos")
# CAMBIAR EL NOMBRE A LA COLUMNA DE DATOS CALCULADOS, PARA EL GRAFICO
names(bdst_edadagnospdp)[2] <- "bdst_pb"
# GRAFICAR LA CURVA CALCULADA POR PDP SOBRE EL SET DE DATOS PARA TESTING
ggplot(dat.test, aes(edadagnos,bdst_pb)) +
geom_density_2d_filled(show.legend = FALSE) + geom_point(size=0.1,
col="white") + ylim(-1,6) + xlim(8,13) +
geom_line(data=bdst_edadagnospdp, col="red", size=1.5)
la curva calculada con pdp se agrega sobre los datos para testing al
final del ggplot, en la parte de geom_line(data=bdst_edadagnospdp,
col="red", size=1.5)
puedes mirar los detalles de la funcion pdp con ?pdp.
Ojalá te sirva,
Saludos !!
Eric.
On Wed, 14 Apr 2021 21:03:39 +0200
Manuel Mendoza <mmendoza en fulbrightmail.org> wrote:
Buenas, ¿alguien ha calculado alguna vez partial dependence plots con
XgBoost? Yo lo he conseguido con el paquete PDP y clasificación
binaria, pero llevo horas intentándolo con regresión y no hay forma.
Apenas hay ejemplos en la red, y utilizan caret o h2o, que de momento
no me sirven. Gracias,
Manuel
[[alternative HTML version deleted]]
_______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es