Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----echo = FALSE-------------------------------------------------------------
options(crayon.enabled = FALSE, cli.num_colors = 0)
## -----------------------------------------------------------------------------
library(metasnf)
dl <- data_list(
list(anxiety, "anxiety", "behaviour", "ordinal"),
list(depress, "depressed", "behaviour", "ordinal"),
uid = "unique_id"
)
sc <- snf_config(
dl = dl,
n_solutions = 5
)
sc$"dist_fns_list"
## -----------------------------------------------------------------------------
sc <- snf_config(
dl = dl,
n_solutions = 10,
cnt_dist_fns = list("standard_norm_euclidean" = sn_euclidean_distance),
dsc_dist_fns = list("standard_norm_euclidean" = sn_euclidean_distance),
use_default_dist_fns = TRUE
)
sc
## ----eval = FALSE-------------------------------------------------------------
# sol_df <- batch_snf(dl, sc)
## -----------------------------------------------------------------------------
sc <- snf_config(
dl = dl,
n_solutions = 10,
cnt_dist_fns = list("standard_norm_euclidean" = sn_euclidean_distance),
dsc_dist_fns = list("standard_norm_euclidean" = sn_euclidean_distance),
ord_dist_fns = list("standard_norm_euclidean" = sn_euclidean_distance),
mix_dist_fns = list("standard_norm_euclidean" = gower_distance),
use_default_dist_fns = FALSE
)
sc
## -----------------------------------------------------------------------------
sc <- snf_config(
dl = dl,
n_solutions = 10,
cnt_dist_fns = list(
"standard_norm_euclidean" = sn_euclidean_distance,
"some_other_metric" = sn_euclidean_distance
),
dsc_dist_fns = list(
"standard_norm_euclidean" = sn_euclidean_distance,
"some_other_metric" = sn_euclidean_distance
),
use_default_dist_fns = TRUE,
continuous_distances = 1,
discrete_distances = c(2, 3)
)
sc
## -----------------------------------------------------------------------------
sc$"weights_matrix"
## ----eval = FALSE-------------------------------------------------------------
# # random weights:
# sc <- snf_config(
# dl = dl,
# n_solutions = 10,
# weights_fill = "uniform" # or fill = "exponential"
# )
#
# sc
#
# # custom weights
# fts <- features(dl)
# custom_wm <- matrix(nrow = 10, ncol = length(fts), rnorm(10 * length(fts))^2)
# colnames(custom_wm) <- fts
# custom_wm <- as_weights_matrix(custom_wm)
#
# sc <- snf_config(
# dl = dl,
# n_solutions = 10,
# wm = custom_wm
# )
#
# sc
## -----------------------------------------------------------------------------
euclidean_distance
## -----------------------------------------------------------------------------
head(anxiety)
## -----------------------------------------------------------------------------
processed_anxiety <- anxiety |>
na.omit() |> # no NAs
dplyr::rename("uid" = "unique_id") |>
data.frame(row.names = "uid")
head(processed_anxiety)
## -----------------------------------------------------------------------------
my_scaled_euclidean <- function(df, weights_row) {
# this function won't apply the weights it is given
distance_matrix <- df |>
stats::dist(method = "euclidean") |>
as.matrix() # make sure it's formatted as a matrix
distance_matrix <- distance_matrix / max(distance_matrix)
return(distance_matrix)
}
## -----------------------------------------------------------------------------
my_scaled_euclidean(processed_anxiety)[1:5, 1:5]
## -----------------------------------------------------------------------------
sc <- snf_config(
n_solutions = 10,
dl = dl,
cnt_dist_fns = list(
"my_scaled_euclidean" = my_scaled_euclidean
),
use_default_dist_fns = TRUE
)
sc
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.