Package weka.clusterers

# Class AbstractDensityBasedClusterer

java.lang.Object
weka.clusterers.AbstractClusterer
weka.clusterers.AbstractDensityBasedClusterer

All Implemented Interfaces:
  `Serializable`, `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

Constructors
Constructor
Description
`AbstractDensityBasedClusterer()`

## Method Summary

Modifier and Type
Method
Description
`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, getRevision, 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`

## 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