Class AbstractDensityBasedClusterer

java.lang.Object
weka.clusterers.AbstractClusterer
weka.clusterers.AbstractDensityBasedClusterer
All Implemented Interfaces:
Serializable, Cloneable, Clusterer, DensityBasedClusterer, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, OptionHandler, RevisionHandler
Direct Known Subclasses:
MakeDensityBasedClusterer, RandomizableDensityBasedClusterer

public abstract class AbstractDensityBasedClusterer extends AbstractClusterer implements DensityBasedClusterer
Abstract clustering model that produces (for each test instance) an estimate of the membership in each cluster (ie. a probability distribution).
Version:
$Revision: 8034 $
Author:
Mark Hall (mhall@cs.waikato.ac.nz), Eibe Frank (eibe@cs.waikato.ac.nz)
See Also:
  • Constructor Details

    • AbstractDensityBasedClusterer

      public AbstractDensityBasedClusterer()
  • Method Details

    • clusterPriors

      public abstract double[] clusterPriors() throws Exception
      Returns the prior probability of each cluster.
      Specified by:
      clusterPriors in interface DensityBasedClusterer
      Returns:
      the prior probability for each cluster
      Throws:
      Exception - if priors could not be returned successfully
    • logDensityPerClusterForInstance

      public abstract double[] logDensityPerClusterForInstance(Instance instance) throws Exception
      Computes the log of the conditional density (per cluster) for a given instance.
      Specified by:
      logDensityPerClusterForInstance in interface DensityBasedClusterer
      Parameters:
      instance - the instance to compute the density for
      Returns:
      an array containing the estimated densities
      Throws:
      Exception - if the density could not be computed successfully
    • logDensityForInstance

      public double logDensityForInstance(Instance instance) throws Exception
      Computes the density for a given instance.
      Specified by:
      logDensityForInstance in interface DensityBasedClusterer
      Parameters:
      instance - the instance to compute the density for
      Returns:
      the density.
      Throws:
      Exception - if the density could not be computed successfully
    • distributionForInstance

      public double[] distributionForInstance(Instance instance) throws Exception
      Returns the cluster probability distribution for an instance.
      Specified by:
      distributionForInstance in interface Clusterer
      Specified by:
      distributionForInstance in interface DensityBasedClusterer
      Overrides:
      distributionForInstance in class AbstractClusterer
      Parameters:
      instance - the instance to be clustered
      Returns:
      the probability distribution
      Throws:
      Exception - if computation fails
    • logJointDensitiesForInstance

      public double[] logJointDensitiesForInstance(Instance inst) throws Exception
      Returns the logs of the joint densities for a given instance.
      Specified by:
      logJointDensitiesForInstance in interface DensityBasedClusterer
      Parameters:
      inst - the instance
      Returns:
      the array of values
      Throws:
      Exception - if values could not be computed
    • makeCopies

      public static DensityBasedClusterer[] makeCopies(DensityBasedClusterer model, int num) throws 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:
      Exception - if an error occurs