Package weka.clusterers
Class AbstractClusterer
- java.lang.Object
-
- weka.clusterers.AbstractClusterer
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable,Clusterer,CapabilitiesHandler,RevisionHandler
- Direct Known Subclasses:
AbstractDensityBasedClusterer,CLOPE,DBSCAN,HierarchicalClusterer,OPTICS,RandomizableClusterer,RandomizableSingleClustererEnhancer,SingleClustererEnhancer
public abstract class AbstractClusterer extends java.lang.Object implements Clusterer, java.lang.Cloneable, java.io.Serializable, CapabilitiesHandler, RevisionHandler
Abstract clusterer.- Version:
- $Revision: 5537 $
- Author:
- Mark Hall (mhall@cs.waikato.ac.nz)
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description AbstractClusterer()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract voidbuildClusterer(Instances data)Generates a clusterer.intclusterInstance(Instance instance)Classifies a given instance.double[]distributionForInstance(Instance instance)Predicts the cluster memberships for a given instance.static ClustererforName(java.lang.String clustererName, java.lang.String[] options)Creates a new instance of a clusterer given it's class name and (optional) arguments to pass to it's setOptions method.CapabilitiesgetCapabilities()Returns the Capabilities of this clusterer.java.lang.StringgetRevision()Returns the revision string.static Clusterer[]makeCopies(Clusterer model, int num)Creates copies of the current clusterer.static ClusterermakeCopy(Clusterer model)Creates a deep copy of the given clusterer using serialization.abstract intnumberOfClusters()Returns the number of clusters.
-
-
-
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:
buildClustererin interfaceClusterer- 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:
clusterInstancein interfaceClusterer- 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:
distributionForInstancein interfaceClusterer- 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.ExceptionReturns the number of clusters.- Specified by:
numberOfClustersin interfaceClusterer- 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 clustereroptions- 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 copynum- the number of clusterer copies to create.- Returns:
- an array of clusterers.
- Throws:
java.lang.Exception- if an error occurs
-
getCapabilities
public Capabilities getCapabilities()
Returns the Capabilities of this clusterer. Derived classifiers have to override this method to enable capabilities.- Specified by:
getCapabilitiesin interfaceCapabilitiesHandler- Specified by:
getCapabilitiesin interfaceClusterer- Returns:
- the capabilities of this object
- See Also:
Capabilities
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevisionin interfaceRevisionHandler- Returns:
- the revision
-
-