Package elki.clustering.kmedoids
Class FastPAM1.Instance
- java.lang.Object
-
- elki.clustering.kmedoids.PAM.Instance
-
- elki.clustering.kmedoids.FastPAM1.Instance
-
- Direct Known Subclasses:
FastPAM.Instance
protected static class FastPAM1.Instance extends PAM.Instance
Instance for a single dataset.- Author:
- Erich Schubert
-
-
Field Summary
-
Fields inherited from class elki.clustering.kmedoids.PAM.Instance
assignment, distQ, ids, nearest, second
-
-
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 doubleassignToNearestCluster(elki.database.ids.ArrayDBIDs means)Returns a list of clusters.protected doublecomputeReassignmentCost(elki.database.ids.DBIDRef xj, double[] loss)Compute the reassignment cost, for all medoids in one pass.protected doublerun(elki.database.ids.ArrayModifiableDBIDs medoids, int maxiter)Run the FastPAM optimization phase.protected voidupdateAssignment(elki.database.ids.ArrayModifiableDBIDs medoids, elki.database.ids.DBIDArrayIter miter, elki.database.ids.DBIDRef h, int m)Update an existing cluster assignment.protected voidupdatePriorCost(double[] pcost)Prior assignment costs.protected intupdateSecondNearest(elki.database.ids.DBIDRef j, elki.database.ids.DBIDArrayIter medoids, int h, double dist_h, int n)Find the second nearest medoid.-
Methods inherited from class elki.clustering.kmedoids.PAM.Instance
computeReassignmentCost
-
-
-
-
Method Detail
-
run
protected double run(elki.database.ids.ArrayModifiableDBIDs medoids, int maxiter)Run the FastPAM optimization phase.- Overrides:
runin classPAM.Instance- Parameters:
medoids- Medoids listmaxiter-- Returns:
- cost
-
updatePriorCost
protected void updatePriorCost(double[] pcost)
Prior assignment costs.- Parameters:
pcost- Prior cost.
-
assignToNearestCluster
protected double assignToNearestCluster(elki.database.ids.ArrayDBIDs means)
Returns a list of clusters. The kth cluster contains the ids of those objects, that are nearest to the kth mean.- Overrides:
assignToNearestClusterin classPAM.Instance- Parameters:
means- Object centroids- Returns:
- Assignment cost
-
computeReassignmentCost
protected double computeReassignmentCost(elki.database.ids.DBIDRef xj, double[] loss)Compute the reassignment cost, for all medoids in one pass.- Parameters:
xj- Current object to swap with any medoid.loss- Loss change aggregation array, must have size k- Returns:
- Loss change accumulator that applies to all
-
updateAssignment
protected void updateAssignment(elki.database.ids.ArrayModifiableDBIDs medoids, elki.database.ids.DBIDArrayIter miter, elki.database.ids.DBIDRef h, int m)Update an existing cluster assignment.- Parameters:
medoids- Medoids setmiter- Medoid iteratorh- New medoidm- Position of replaced medoid
-
updateSecondNearest
protected int updateSecondNearest(elki.database.ids.DBIDRef j, elki.database.ids.DBIDArrayIter medoids, int h, double dist_h, int n)Find the second nearest medoid.- Parameters:
j- Query pointmedoids- Medoidsh- Known medoiddist_h- Distance to hn- Known nearest- Returns:
- Index of second nearest medoid,
PAM.Instance.secondis updated.
-
-