Class Silhouette<O>
- java.lang.Object
-
- elki.evaluation.clustering.internal.Silhouette<O>
-
- Type Parameters:
O- Object type
- All Implemented Interfaces:
elki.evaluation.Evaluator,elki.result.ResultProcessor
@Reference(authors="P. J. Rousseeuw", title="Silhouettes: A graphical aid to the interpretation and validation of cluster analysis", booktitle="Journal of Computational and Applied Mathematics, Volume 20", url="https://doi.org/10.1016/0377-0427(87)90125-7", bibkey="doi:10.1016/0377-04278790125-7") public class Silhouette<O> extends java.lang.Object implements elki.evaluation.EvaluatorCompute the silhouette of a data set.Reference:
P. J. Rousseeuw
Silhouettes: A graphical aid to the interpretation and validation of cluster analysis
In: Journal of Computational and Applied Mathematics Volume 20, November 1987TODO: keep all silhouette values, and allow visualization!
- Since:
- 0.7.0
- Author:
- Erich Schubert
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSilhouette.Par<O>Parameterization class.
-
Field Summary
Fields Modifier and Type Field Description private elki.distance.Distance<? super O>distanceDistance function to use.private static java.lang.StringkeyKey for logging statistics.private static elki.logging.LoggingLOGLogger for debug output.private NoiseHandlingnoiseOptionOption for noise handling.private booleanpenalizePenalize noise, ifNoiseHandling.IGNORE_NOISEis set.static java.lang.StringSILHOUETTE_NAMEName of the silhouette result.
-
Constructor Summary
Constructors Constructor Description Silhouette(elki.distance.Distance<? super O> distance, boolean mergenoise)Constructor.Silhouette(elki.distance.Distance<? super O> distance, NoiseHandling noiseOption, boolean penalize)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doubleevaluateClustering(elki.database.relation.Relation<O> rel, elki.database.query.distance.DistanceQuery<O> dq, Clustering<?> c)Evaluate a single clustering.voidprocessNewResult(java.lang.Object result)
-
-
-
Field Detail
-
LOG
private static final elki.logging.Logging LOG
Logger for debug output.
-
SILHOUETTE_NAME
public static final java.lang.String SILHOUETTE_NAME
Name of the silhouette result.- See Also:
- Constant Field Values
-
distance
private elki.distance.Distance<? super O> distance
Distance function to use.
-
noiseOption
private NoiseHandling noiseOption
Option for noise handling.
-
penalize
private boolean penalize
Penalize noise, ifNoiseHandling.IGNORE_NOISEis set.
-
key
private static final java.lang.String key
Key for logging statistics.
-
-
Constructor Detail
-
Silhouette
public Silhouette(elki.distance.Distance<? super O> distance, NoiseHandling noiseOption, boolean penalize)
Constructor.- Parameters:
distance- Distance functionnoiseOption- Handling of "noise" clusters.penalize- noise, ifNoiseHandling.IGNORE_NOISEis set.
-
Silhouette
public Silhouette(elki.distance.Distance<? super O> distance, boolean mergenoise)
Constructor.- Parameters:
distance- Distance functionmergenoise- Flag to treat noise as clusters, instead of breaking them into singletons.
-
-
Method Detail
-
evaluateClustering
public double evaluateClustering(elki.database.relation.Relation<O> rel, elki.database.query.distance.DistanceQuery<O> dq, Clustering<?> c)
Evaluate a single clustering.- Parameters:
rel- Data relationdq- Distance queryc- Clustering- Returns:
- Average silhouette
-
processNewResult
public void processNewResult(java.lang.Object result)
- Specified by:
processNewResultin interfaceelki.result.ResultProcessor
-
-