Class AbstractClusterer

    • Constructor Detail

      • AbstractClusterer

        public AbstractClusterer()
    • Method Detail

      • buildClusterer

        public abstract void buildClusterer​(Instances data)
                                     throws java.lang.Exception
        Generates a clusterer. Has to initialize all fields of the clusterer that are not being set via options.
        Specified by:
        buildClusterer in interface Clusterer
        Parameters:
        data - set of instances serving as training data
        Throws:
        java.lang.Exception - if the clusterer has not been generated successfully
      • clusterInstance

        public int clusterInstance​(Instance instance)
                            throws java.lang.Exception
        Classifies a given instance. Either this or distributionForInstance() needs to be implemented by subclasses.
        Specified by:
        clusterInstance in interface Clusterer
        Parameters:
        instance - the instance to be assigned to a cluster
        Returns:
        the number of the assigned cluster as an integer
        Throws:
        java.lang.Exception - if instance could not be clustered successfully
      • distributionForInstance

        public double[] distributionForInstance​(Instance instance)
                                         throws java.lang.Exception
        Predicts the cluster memberships for a given instance. Either this or clusterInstance() needs to be implemented by subclasses.
        Specified by:
        distributionForInstance in interface Clusterer
        Parameters:
        instance - the instance to be assigned a cluster.
        Returns:
        an array containing the estimated membership probabilities of the test instance in each cluster (this should sum to at most 1)
        Throws:
        java.lang.Exception - if distribution could not be computed successfully
      • numberOfClusters

        public abstract int numberOfClusters()
                                      throws java.lang.Exception
        Returns the number of clusters.
        Specified by:
        numberOfClusters in interface Clusterer
        Returns:
        the number of clusters generated for a training dataset.
        Throws:
        java.lang.Exception - if number of clusters could not be returned successfully
      • forName

        public static Clusterer forName​(java.lang.String clustererName,
                                        java.lang.String[] options)
                                 throws java.lang.Exception
        Creates a new instance of a clusterer given it's class name and (optional) arguments to pass to it's setOptions method. If the clusterer implements OptionHandler and the options parameter is non-null, the clusterer will have it's options set.
        Parameters:
        clustererName - the fully qualified class name of the clusterer
        options - an array of options suitable for passing to setOptions. May be null.
        Returns:
        the newly created search object, ready for use.
        Throws:
        java.lang.Exception - if the clusterer class name is invalid, or the options supplied are not acceptable to the clusterer.
      • makeCopy

        public static Clusterer makeCopy​(Clusterer model)
                                  throws java.lang.Exception
        Creates a deep copy of the given clusterer using serialization.
        Parameters:
        model - the clusterer to copy
        Returns:
        a deep copy of the clusterer
        Throws:
        java.lang.Exception - if an error occurs
      • makeCopies

        public static Clusterer[] makeCopies​(Clusterer model,
                                             int num)
                                      throws java.lang.Exception
        Creates copies of the current clusterer. Note that this method now uses Serialization to perform a deep copy, so the Clusterer object must be fully Serializable. Any currently built model will now be copied as well.
        Parameters:
        model - an example clusterer to copy
        num - the number of clusterer copies to create.
        Returns:
        an array of clusterers.
        Throws:
        java.lang.Exception - if an error occurs
      • getRevision

        public java.lang.String getRevision()
        Returns the revision string.
        Specified by:
        getRevision in interface RevisionHandler
        Returns:
        the revision