-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
variable importance #380
Comments
Hello,
Suppose you had a Maxent (Maxnet) model fited with flexsdm, named
"maxent.fit.model". You can use {fitMaxnet} package do estimate variable
importance, like this:
# flexsdm variable importance (fitMaxnet)
maxent.varimp <- fitMaxnet::varImportance(
theModel = with(maxent.fit.model, model),
occSWD = as.data.frame(presence.points.model),
bkgSWD = as.data.frame(background.points.model),
responseType = "cloglog",
numReplicates = 50
)
maxent.varimp <- data.frame(maxent.varimp)
maxent.varimp$Var <- row.names(maxent.varimp)
maxent.varimp <- arrange(maxent.varimp, Var)
file.name <- paste0("Plot - FINAL MODEL Var Permutation Importance.tiff")
file.name <- iconv(file.name, to = "ASCII//TRANSLIT")
file.name <- file.path(some.folder, file.name)
tiff(filename = file.name, units = "cm", width = 20, height = 12, res = 400)
maxent.varimp %>%
arrange(maxent.varimp) %>%
mutate(Var = factor(Var, levels = Var)) %>%
ggplot(aes(x = Var, y = maxent.varimp)) +
geom_col(fill = "#076FA2", width = 0.6) +
geom_text(aes(label = paste0(maxent.varimp, "%")),
hjust = -0.1,
colour = "black",
fontface = "bold") +
coord_flip() +
xlab("") +
ylab("Permutation importance (%)") +
scale_y_continuous(limits = c(0,85), n.breaks = 10)
dev.off()
I hope it helps...
Best wishes
G.
…On Mon, Jun 3, 2024 at 9:49 AM dorjismo ***@***.***> wrote:
How do I get variable importance? I have used flexsdm to model my species.
I now want to find out variable importance. I do not know in this package.
You help will be greatly appreciated as it is my thesis. Thanks
—
Reply to this email directly, view it on GitHub
<#380>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AKVCFCJCW47LTZJZFLWLF7TZFRX6RAVCNFSM6AAAAABIWRZ7G6VHI2DSMVQWIX3LMV43ASLTON2WKOZSGMZTCMRRGM3DIOA>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
--
*George Amaro*
|
Hi,
Sorry I could not follow. Looks like it does not work with models fitted
with flexsdm. Below is the code I used for maxent and random forest
max_t <- tune_max(
data = pres_max,
response = "occ",
predictors = c("bio2", "bio3", "bio8", "bio9", "bio12", "bio15"),
partition = ".part",
background = bg_max_part,
grid = gridtest,
thr = "max_sens_spec",
metric = "TSS",
clamp = TRUE,
pred_type = "cloglog",
n_cores = 10 # activate two cores to speed up this process
)
rf_t <-
tune_raf(
data = par_part,
response = "occ",
predictors = c("bio2", "bio3", "bio8", "bio9", "bio12", "bio15"),
partition = ".part",
grid = tune_grid,
thr = c("max_sens_spec", "equal_sens_spec", "max_sorensen"),
metric = "TSS",
n_cores = 10
).
Would be grateful if you have further help.
Thanks a lot.
Regards
Sangay
…On Tue, 4 Jun 2024 at 00:33, geamaro ***@***.***> wrote:
Hello,
Suppose you had a Maxent (Maxnet) model fited with flexsdm, named
"maxent.fit.model". You can use {fitMaxnet} package do estimate variable
importance, like this:
# flexsdm variable importance (fitMaxnet)
maxent.varimp <- fitMaxnet::varImportance(
theModel = with(maxent.fit.model, model),
occSWD = as.data.frame(presence.points.model),
bkgSWD = as.data.frame(background.points.model),
responseType = "cloglog",
numReplicates = 50
)
maxent.varimp <- data.frame(maxent.varimp)
maxent.varimp$Var <- row.names(maxent.varimp)
maxent.varimp <- arrange(maxent.varimp, Var)
file.name <- paste0("Plot - FINAL MODEL Var Permutation Importance.tiff")
file.name <- iconv(file.name, to = "ASCII//TRANSLIT")
file.name <- file.path(some.folder, file.name)
tiff(filename = file.name, units = "cm", width = 20, height = 12, res =
400)
maxent.varimp %>%
arrange(maxent.varimp) %>%
mutate(Var = factor(Var, levels = Var)) %>%
ggplot(aes(x = Var, y = maxent.varimp)) +
geom_col(fill = "#076FA2", width = 0.6) +
geom_text(aes(label = paste0(maxent.varimp, "%")),
hjust = -0.1,
colour = "black",
fontface = "bold") +
coord_flip() +
xlab("") +
ylab("Permutation importance (%)") +
scale_y_continuous(limits = c(0,85), n.breaks = 10)
dev.off()
I hope it helps...
Best wishes
G.
On Mon, Jun 3, 2024 at 9:49 AM dorjismo ***@***.***> wrote:
> How do I get variable importance? I have used flexsdm to model my
species.
> I now want to find out variable importance. I do not know in this
package.
> You help will be greatly appreciated as it is my thesis. Thanks
>
> —
> Reply to this email directly, view it on GitHub
> <#380>, or unsubscribe
> <
https://github.com/notifications/unsubscribe-auth/AKVCFCJCW47LTZJZFLWLF7TZFRX6RAVCNFSM6AAAAABIWRZ7G6VHI2DSMVQWIX3LMV43ASLTON2WKOZSGMZTCMRRGM3DIOA>
> .
> You are receiving this because you are subscribed to this thread.Message
> ID: ***@***.***>
>
--
*George Amaro*
—
Reply to this email directly, view it on GitHub
<#380 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BI5CYFZZB2PZWY4BBMDFTODZFR5FFAVCNFSM6AAAAABIWRZ7G6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBVGM3DEOBQHE>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
A function to calculate variable importance is on the to-do list: Issue #55 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
How do I get variable importance? I have used flexsdm to model my species. I now want to find out variable importance. I do not know in this package. You help will be greatly appreciated as it is my thesis. Thanks
The text was updated successfully, but these errors were encountered: