weka.clusterers
Class AbstractDensityBasedClusterer

java.lang.Object
  extended by weka.clusterers.AbstractClusterer
      extended by weka.clusterers.AbstractDensityBasedClusterer
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Clusterer, DensityBasedClusterer, CapabilitiesHandler, 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: 1.1 $
Author:
Mark Hall (mhall@cs.waikato.ac.nz), Eibe Frank (eibe@cs.waikato.ac.nz)
See Also:
Serialized Form

Constructor Summary
AbstractDensityBasedClusterer()
           
 
Method Summary
abstract  double[] clusterPriors()
          Returns the prior probability of each cluster.
 double[] distributionForInstance(Instance instance)
          Returns the cluster probability distribution for an instance.
 double logDensityForInstance(Instance instance)
          Computes the density for a given instance.
abstract  double[] logDensityPerClusterForInstance(Instance instance)
          Computes the log of the conditional density (per cluster) for a given instance.
 double[] logJointDensitiesForInstance(Instance inst)
          Returns the logs of the joint densities for a given instance.
static DensityBasedClusterer[] makeCopies(DensityBasedClusterer model, int num)
          Creates copies of the current clusterer.
 
Methods inherited from class weka.clusterers.AbstractClusterer
buildClusterer, clusterInstance, forName, getCapabilities, makeCopies, makeCopy, numberOfClusters
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface weka.clusterers.Clusterer
buildClusterer, clusterInstance, getCapabilities, numberOfClusters
 
Methods inherited from interface weka.core.RevisionHandler
getRevision
 

Constructor Detail

AbstractDensityBasedClusterer

public AbstractDensityBasedClusterer()
Method Detail

clusterPriors

public abstract double[] clusterPriors()
                                throws java.lang.Exception
Returns the prior probability of each cluster.

Specified by:
clusterPriors in interface DensityBasedClusterer
Returns:
the prior probability for each cluster
Throws:
java.lang.Exception - if priors could not be returned successfully

logDensityPerClusterForInstance

public abstract double[] logDensityPerClusterForInstance(Instance instance)
                                                  throws java.lang.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:
java.lang.Exception - if the density could not be computed successfully

logDensityForInstance

public double logDensityForInstance(Instance instance)
                             throws java.lang.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:
java.lang.Exception - if the density could not be computed successfully

distributionForInstance

public double[] distributionForInstance(Instance instance)
                                 throws java.lang.Exception
Returns the cluster probability distribution for an instance.

Specified by:
distributionForInstance in interface Clusterer
Overrides:
distributionForInstance in class AbstractClusterer
Parameters:
instance - the instance to be clustered
Returns:
the probability distribution
Throws:
java.lang.Exception - if computation fails

logJointDensitiesForInstance

public double[] logJointDensitiesForInstance(Instance inst)
                                      throws java.lang.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:
java.lang.Exception - if values could not be computed

makeCopies

public static DensityBasedClusterer[] makeCopies(DensityBasedClusterer 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