Skip to content

regularization multipler behavior for hinges unexpected #11

@jamiemkass

Description

@jamiemkass

I found that when hinge features only are used, I do not get the expected results when I increase the regularization multiplier -- sometimes the number of non-zero betas goes down, but sometimes it goes up. Please run this example to see this behavior. Why would this be? Shouldn't the number of non-zero betas for a model with rm = n always be equal to or lower than a model with rm = n - 1?

set.seed(48)
bv <- spocc::occ('Bradypus variegatus', 'gbif', limit=300, has_coords=TRUE)
occs <- as.data.frame(bv$gbif$data$Bradypus_variegatus[,2:3])
occs <- occs[!duplicated(occs),]
envs <- raster::stack(list.files(path=paste(system.file(package='dismo'), '/ex', sep=''), pattern='grd', full.names=TRUE))
bg <- dismo::randomPoints(envs, 1000)
occs.vals <- raster::extract(envs, occs)
bg.vals <- raster::extract(envs, bg)
bg.vals.naRows <- which(rowSums(is.na(bg.vals)) > 0)
bg.vals <- bg.vals[-bg.vals.naRows,]
d <- as.data.frame(rbind(occs.vals, bg.vals))
d$biome <- as.factor(d$biome)
p <- c(rep(1, nrow(occs.vals)), rep(0, nrow(bg.vals)))
f <- maxnet::maxnet.formula(p, d, classes = "h")

m1 <- maxnet::maxnet(p, d, f, regmult = 1)
m2 <- maxnet::maxnet(p, d, f, regmult = 2)
m3 <- maxnet::maxnet(p, d, f, regmult = 3)
m4 <- maxnet::maxnet(p, d, f, regmult = 4)

length(m1$betas)
length(m2$betas)
length(m3$betas)
length(m4$betas)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions