Skip to contents

An R package for silhouette-based diagnostics in standard, soft, and multi-way clustering.

Quantifies clustering quality by measuring both cohesion within clusters and separation between clusters. Implements advanced silhouette width computations for diverse clustering structures, including: simplified silhouette by Van der Laan et al. (2003), Probability of Alternative Cluster normalization methods by Raymaekers & Rousseeuw (2022), fuzzy clustering and silhouette diagnostics using membership probabilities by Campello & Hruschka (2006), Menardi (20011) and Bhat & Kiruthika (2024), and multi-way clustering extensions such as block and tensor clustering by Schepers et al. (2008) and Bhat & Kiruthika (2025). Provides tools for computation and visualization based on Rousseeuw (1987) to support robust and reproducible cluster diagnostics across standard, soft, and multi-way clustering settings.

Note: This package does not use the classical Rousseeuw (1987) calculation directly.


✅ Why This Package?

  • Unified & consistent: Offers one coherent interface for crisp, soft, and multi-way clustering silhouette diagnostics.
  • Flexible: Works with distance matrices, clustering outputs, or soft membership probabilities.
  • Advanced: Implements newer normalization methods (PAC, db), handles soft clustering, and supports mode-wise silhouette aggregation.
  • Visualization: Plot functions produce clear, customizable silhouette plots compatible with many clustering outputs and existing silhouette outputs from factoextra, cluster and drclust R packages.
  • Comparability: Summaries and plots make it easy to compare clustering algorithms or tune the number of clusters.
  • Interoperable: All Silhouette class functions works with any clustering output that provides a proximity or membership probability matrix. Users can also supply a proximity matrix and a clustering function—including S3 or S4 methods—to let Silhouette class perform clustering and compute silhouettes internally in one step.

Installation

You can install the released version of Silhouette from GitHub using:

# Install devtools if needed
if (!requireNamespace("devtools", quietly = TRUE)) {
  install.packages("devtools")
}

# Install from GitHub
devtools::install_github("kskbhat/Silhouette")

From CRAN, install via:

install.packages("Silhouette")

Usage

Usage of the main functions is demonstrated in the package examples and documentation.

For an intro, see the vignette Silhouette, which is available as

vignette("Silhouette")

You can access the vignette from the Get started tab in the top navigation bar of the package’s website.


Report a Bug or Request a Feature

If you encounter a bug or have an idea for a new feature in the Silhouette package, please let us know by opening an issue on GitHub:

  • Create an issue on GitHub
  • For bugs: include a minimal reproducible example, describe the expected vs. actual behavior, and mention your R and package versions
  • For feature requests: clearly describe the proposed feature, its purpose, and how it would benefit users

Your feedback and suggestions are valuable and help improve the package.