Measures average silhouette across all observations
Usage
silhouette_avg(object, ...)
# S3 method for cluster_spec
silhouette_avg(object, ...)
# S3 method for cluster_fit
silhouette_avg(object, new_data = NULL, dists = NULL, dist_fun = NULL, ...)
# S3 method for workflow
silhouette_avg(object, new_data = NULL, dists = NULL, dist_fun = NULL, ...)
silhouette_avg_vec(
object,
new_data = NULL,
dists = NULL,
dist_fun = Rfast::Dist,
...
)
Arguments
- object
A fitted kmeans tidyclust model
- ...
Other arguments passed to methods.
- new_data
A dataset to predict on. If
NULL
, uses trained clustering.- dists
A distance matrix. Used if
new_data
isNULL
.- dist_fun
A function for calculating distances between observations. Defaults to Euclidean distance on processed data.
Details
Not to be confused with silhouette()
that returns a tibble
with silhouette for each observation.
See also
Other cluster metric:
sse_ratio()
,
sse_total()
,
sse_within_total()
Examples
kmeans_spec <- k_means(num_clusters = 5) %>%
set_engine("stats")
kmeans_fit <- fit(kmeans_spec, ~., mtcars)
dists <- mtcars %>%
as.matrix() %>%
dist()
silhouette_avg(kmeans_fit, dists = dists)
#> # A tibble: 1 × 3
#> .metric .estimator .estimate
#> <chr> <chr> <dbl>
#> 1 silhouette_avg standard 0.345
silhouette_avg_vec(kmeans_fit, dists = dists)
#> [1] 0.3450963