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
anddrclust
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 letSilhouette
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.