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`

is`NULL`

.- 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
```