Class ReynoldsPAM.Instance

  • Enclosing class:
    ReynoldsPAM<O>

    protected static class ReynoldsPAM.Instance
    extends PAM.Instance
    Instance for a single dataset.
    Author:
    Erich Schubert
    • 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 double computeReassignmentCost​(elki.database.ids.DBIDRef h, elki.database.datastore.WritableDoubleDataStore tnearest)
      Compute the reassignment cost, for all medoids in one pass.
      protected double computeRemovalCost​(int i, elki.database.datastore.WritableDoubleDataStore tnearest)
      Compute the cost of removing a medoid just once.
      protected double run​(elki.database.ids.ArrayModifiableDBIDs medoids, int maxiter)
      Run the PAM optimization phase.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Instance

        public Instance​(elki.database.query.distance.DistanceQuery<?> distQ,
                        elki.database.ids.DBIDs ids,
                        elki.database.datastore.WritableIntegerDataStore assignment)
        Constructor.
        Parameters:
        distQ - Distance query
        ids - IDs to process
        assignment - Cluster assignment
    • Method Detail

      • run

        protected double run​(elki.database.ids.ArrayModifiableDBIDs medoids,
                             int maxiter)
        Run the PAM optimization phase.
        Overrides:
        run in class PAM.Instance
        Parameters:
        medoids - Medoids list
        maxiter -
        Returns:
        final cost
      • computeRemovalCost

        protected double computeRemovalCost​(int i,
                                            elki.database.datastore.WritableDoubleDataStore tnearest)
        Compute the cost of removing a medoid just once. This can then be reused for every point, thus decreasing the runtime cost at low memory overhead.

        The output array contains for each medoid the cost of removing all its points, and reassigning them to the second nearest medoid instead.

        Parameters:
        i - Medoid to virtually remove
        tnearest - Output storage
        Returns:
        Cost
      • computeReassignmentCost

        protected double computeReassignmentCost​(elki.database.ids.DBIDRef h,
                                                 elki.database.datastore.WritableDoubleDataStore tnearest)
        Compute the reassignment cost, for all medoids in one pass.
        Parameters:
        h - Current object to swap with any medoid.
        tnearest - Distance to the nearest except the removed medoid
        Returns:
        cost change