thomasp85 / lime

Local Interpretable Model-Agnostic Explanations (R port of original Python package)

Home Page:https://lime.data-imaginist.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Family in glmnet is always gaussian

mirka-henninger opened this issue · comments

When applying LIME to simulated data with a binary outcome, LIME results do not always match the data generating process. This arises because the family argument in the call to glmnet is set to gaussian by default and does not reflect the model type (classification versus regression). See e.g.,

lime/R/lime.R

Line 48 in 0281c56

fit <- glm.fit(x = x_fit, y = y[[label]], weights = weights, family = gaussian())

and

lime/R/lime.R

Line 56 in 0281c56

fit <- glmnet(x[shuffle_order, features], y[[label]][shuffle_order], weights = weights[shuffle_order], alpha = 0, lambda = 2 / length(y[[label]]))

I was wondering whether this is intentional/documented somewhere? As one possible fix, one could add a family argument to the model_permutations function that then can be used in the glm.fit and glmnet function calls. If you'd be willing to add a corresponding PR, I could prepare one.