Learn R Programming

Silhouette

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.

Copy Link

Version

Install

install.packages('Silhouette')

Monthly Downloads

228

Version

0.9.6

License

GPL-2

Maintainer

Shrikrishna Bhat K

Last Published

October 15th, 2025

Functions in Silhouette (0.9.6)

calSilhouette

Compute Calculate of All Possible Silhouette Methods
getSilhouette

Create Silhouette Object from User Components
Silhouette

Calculate Silhouette Widths, Summary, and Plot for Clustering Results
cerSilhouette

Certainty Silhouette Width (Cer) for Soft Clustering
plotSilhouette

Plot Silhouette Analysis Results
is.Silhouette

Check if Object is of Class Silhouette
softSilhouette

Calculate Silhouette Width for Soft Clustering Algorithms
Silhouette-package

Silhouette: Proximity Measure Based Diagnostics for Standard, Soft, and Multi-Way Clustering
dbSilhouette

Density-Based Silhouette Width (DBS) for Soft Clustering
extSilhouette

Calculate Extended Silhouette Width for Multi-Way Clustering