Package elki.clustering.silhouette
Class PAMSIL.Instance
- java.lang.Object
-
- elki.clustering.silhouette.PAMSIL.Instance
-
- Direct Known Subclasses:
PAMMEDSIL.Instance
protected static class PAMSIL.Instance extends java.lang.ObjectInstance for a single dataset.- Author:
- Erich Schubert
-
-
Field Summary
Fields Modifier and Type Field Description (package private) elki.database.datastore.WritableIntegerDataStoreassignmentCluster mapping.(package private) elki.database.query.distance.DistanceQuery<?>distQDistance function to use.(package private) elki.database.ids.DBIDsidsIds to process.(package private) elki.database.datastore.WritableIntegerDataStorescratchScratch cluster mapping.(package private) elki.database.datastore.WritableDoubleDataStoresilhouettesStore the per-point silhouette scores for plotting.
-
Constructor Summary
Constructors Constructor Description Instance(elki.database.query.distance.DistanceQuery<?> distQ, elki.database.ids.DBIDs ids, elki.database.datastore.WritableIntegerDataStore assignment)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidassignToNearestCluster(elki.database.ids.ArrayDBIDs medoids)Assign each object to the nearest cluster.protected voidreassignToNearestCluster(elki.database.datastore.IntegerDataStore prev, elki.database.datastore.WritableIntegerDataStore assignment, elki.database.ids.ArrayDBIDs medoids, int pi, elki.database.ids.DBIDRef h)Assign each object to the nearest cluster when replacing one medoid.protected doublerun(elki.database.ids.ArrayModifiableDBIDs medoids, int maxiter)Run the PAMSIL optimization phase.protected doublesilhouette(elki.database.datastore.IntegerDataStore assignment, int k)Evaluate the average Silhouette of the current cluster assignmentelki.database.datastore.DoubleDataStoresilhouetteScores()
-
-
-
Field Detail
-
ids
elki.database.ids.DBIDs ids
Ids to process.
-
distQ
elki.database.query.distance.DistanceQuery<?> distQ
Distance function to use.
-
assignment
elki.database.datastore.WritableIntegerDataStore assignment
Cluster mapping.
-
scratch
elki.database.datastore.WritableIntegerDataStore scratch
Scratch cluster mapping.
-
silhouettes
elki.database.datastore.WritableDoubleDataStore silhouettes
Store the per-point silhouette scores for plotting.
-
-
Method Detail
-
run
protected double run(elki.database.ids.ArrayModifiableDBIDs medoids, int maxiter)Run the PAMSIL optimization phase.- Parameters:
medoids- Initial medoids listmaxiter- Maximum number of iterations- Returns:
- final Silhouette
-
assignToNearestCluster
protected void assignToNearestCluster(elki.database.ids.ArrayDBIDs medoids)
Assign each object to the nearest cluster.- Parameters:
medoids- Cluster medoids
-
silhouette
protected double silhouette(elki.database.datastore.IntegerDataStore assignment, int k)Evaluate the average Silhouette of the current cluster assignment- Parameters:
assignment- cluster assignmentk- number of clusters (for memory allocation)- Returns:
- Average silhouette width
-
reassignToNearestCluster
protected void reassignToNearestCluster(elki.database.datastore.IntegerDataStore prev, elki.database.datastore.WritableIntegerDataStore assignment, elki.database.ids.ArrayDBIDs medoids, int pi, elki.database.ids.DBIDRef h)Assign each object to the nearest cluster when replacing one medoid.- Parameters:
prev- Previous assignmentassignment- New assignmentmedoids- Previous cluster medoidspi- Medoid positionh- New medoid
-
silhouetteScores
public elki.database.datastore.DoubleDataStore silhouetteScores()
-
-