Package elki.clustering.silhouette
Class FastMSC.Instance2
- java.lang.Object
-
- elki.clustering.silhouette.FastMSC.Instance2
-
- Direct Known Subclasses:
FasterMSC.Instance2
protected class FastMSC.Instance2 extends java.lang.ObjectSimplified FastMSC clustering instance for k=2.For k=2, we can use a much simpler logic.
- Author:
- Erich Schubert
-
-
Field Summary
Fields Modifier and Type Field Description protected elki.database.datastore.WritableIntegerDataStoreassignmentOutput cluster mapping.protected elki.database.query.distance.DistanceQuery<?>distQDistance function to use.protected elki.database.datastore.WritableDoubleDataStoredm0Distances to the first medoid.protected elki.database.datastore.WritableDoubleDataStoredm1Distances to the second medoid.protected elki.database.ids.DBIDsidsIds to process.
-
Constructor Summary
Constructors Constructor Description Instance2(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 doubleassignToNearestCluster(elki.database.ids.ArrayDBIDs means)Assign each object to the nearest cluster.protected doubledoSwap(elki.database.ids.ArrayDBIDs medoids, int b, elki.database.ids.DBIDRef j)Assign each object to the nearest cluster when replacing one medoid.protected voidfindBestSwap(elki.database.ids.DBIDRef j, double[] ploss)Compute the loss change when choosing j as new medoid.protected doublerun(elki.database.ids.ArrayModifiableDBIDs medoids, int maxiter)Run the FastMSC optimization phase.elki.database.datastore.DoubleDataStoresilhouetteScores()Get the silhouette scores per point (must be run() first)
-
-
-
Field Detail
-
ids
protected elki.database.ids.DBIDs ids
Ids to process.
-
distQ
protected elki.database.query.distance.DistanceQuery<?> distQ
Distance function to use.
-
dm0
protected elki.database.datastore.WritableDoubleDataStore dm0
Distances to the first medoid.
-
dm1
protected elki.database.datastore.WritableDoubleDataStore dm1
Distances to the second medoid.
-
assignment
protected elki.database.datastore.WritableIntegerDataStore assignment
Output cluster mapping.
-
-
Method Detail
-
run
protected double run(elki.database.ids.ArrayModifiableDBIDs medoids, int maxiter)Run the FastMSC optimization phase.- Parameters:
medoids- Initial medoids listmaxiter- Maximum number of iterations- Returns:
- final medoid Silhouette
-
assignToNearestCluster
protected double assignToNearestCluster(elki.database.ids.ArrayDBIDs means)
Assign each object to the nearest cluster.- Parameters:
means- Cluster medoids- Returns:
- loss
-
findBestSwap
protected void findBestSwap(elki.database.ids.DBIDRef j, double[] ploss)Compute the loss change when choosing j as new medoid.- Parameters:
j- New medoidploss- Loss array
-
doSwap
protected double doSwap(elki.database.ids.ArrayDBIDs medoids, int b, elki.database.ids.DBIDRef j)Assign each object to the nearest cluster when replacing one medoid.- Parameters:
medoids- Cluster medoidsb- Medoid position indexj- New medoid- Returns:
- medoid silhouette
-
silhouetteScores
public elki.database.datastore.DoubleDataStore silhouetteScores()
Get the silhouette scores per point (must be run() first)- Returns:
- Silhouette scores
-
-