Как сделать графики частичной зависимости в диаграмме рассеяния вместо линейного графика из данных xgboost
library(pdp)
library(xgboost)
param.list <- list(max_depth = 5, eta = 0.01, objective = "binary:logistic",
eval_metric = "auc")
house.xgb <- xgb.train(params = params,
data = xgb.DMatrix(as.matrix(house[ ,1:3]), label =
house$SalePrice, missing = NA),
nrounds = 500)
partial(house.xgb, pred.var = "MSSubClass", plot = T, train = house[ ,1:3])
https://slundberg.github.io/shap/notebooks/NHANES+I+Survival+Model.html график, который я хочу, получен по этой ссылке, которая использует python. Меня не волнуют цвета или ось y, я просто хочу часть графика рассеяния, а не линейный график.
Я использовал партиал из пакета pdp R, но если кто-нибудь может указать мне направление другого пакета, это было бы здорово. Пакет pdp дает только несколько точек данных.
1 ответ
В призыве к partial()
просто установить plot = FALSE
(который используется по умолчанию). Например,
pd <- partial(house.xgb, pred.var = "MSSubClass",
train = house[ ,1:3])
head(pd) # print the data frame
plot(pd) # basic plot or use ggplot2, lattice, plotly, etc.
вернет фрейм данных, для которого вы можете создать диаграмму рассеяния!