Class PAMSIL.Instance

  • Direct Known Subclasses:
    PAMMEDSIL.Instance
    Enclosing class:
    PAMSIL<O>

    protected static class PAMSIL.Instance
    extends java.lang.Object
    Instance for a single dataset.
    Author:
    Erich Schubert
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) elki.database.datastore.WritableIntegerDataStore assignment
      Cluster mapping.
      (package private) elki.database.query.distance.DistanceQuery<?> distQ
      Distance function to use.
      (package private) elki.database.ids.DBIDs ids
      Ids to process.
      (package private) elki.database.datastore.WritableIntegerDataStore scratch
      Scratch cluster mapping.
      (package private) elki.database.datastore.WritableDoubleDataStore silhouettes
      Store 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 void assignToNearestCluster​(elki.database.ids.ArrayDBIDs medoids)
      Assign each object to the nearest cluster.
      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.
      protected double run​(elki.database.ids.ArrayModifiableDBIDs medoids, int maxiter)
      Run the PAMSIL optimization phase.
      protected double silhouette​(elki.database.datastore.IntegerDataStore assignment, int k)
      Evaluate the average Silhouette of the current cluster assignment
      elki.database.datastore.DoubleDataStore silhouetteScores()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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.
    • 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 PAMSIL optimization phase.
        Parameters:
        medoids - Initial medoids list
        maxiter - 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 assignment
        k - 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 assignment
        assignment - New assignment
        medoids - Previous cluster medoids
        pi - Medoid position
        h - New medoid
      • silhouetteScores

        public elki.database.datastore.DoubleDataStore silhouetteScores()