Package weka.clusterers
Class AbstractClusterer
java.lang.Object
weka.clusterers.AbstractClusterer
- All Implemented Interfaces:
Serializable,Cloneable,Clusterer,CapabilitiesHandler,RevisionHandler
- Direct Known Subclasses:
AbstractDensityBasedClusterer,CLOPE,DBSCAN,HierarchicalClusterer,OPTICS,RandomizableClusterer,RandomizableSingleClustererEnhancer,SingleClustererEnhancer
public abstract class AbstractClusterer
extends Object
implements Clusterer, Cloneable, Serializable, CapabilitiesHandler, RevisionHandler
Abstract clusterer.
- Version:
- $Revision: 5537 $
- Author:
- Mark Hall (mhall@cs.waikato.ac.nz)
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract 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 ClustererCreates a new instance of a clusterer given it's class name and (optional) arguments to pass to it's setOptions method.Returns the Capabilities of this clusterer.Returns the revision string.static Clusterer[]makeCopies(Clusterer model, int num) Creates copies of the current clusterer.static ClustererCreates a deep copy of the given clusterer using serialization.abstract intReturns the number of clusters.
-
Constructor Details
-
AbstractClusterer
public AbstractClusterer()
-
-
Method Details
-
buildClusterer
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:
Exception- if the clusterer has not been generated successfully
-
clusterInstance
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:
Exception- if instance could not be clustered successfully
-
distributionForInstance
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:
Exception- if distribution could not be computed successfully
-
numberOfClusters
Returns the number of clusters.- Specified by:
numberOfClustersin interfaceClusterer- Returns:
- the number of clusters generated for a training dataset.
- Throws:
Exception- if number of clusters could not be returned successfully
-
forName
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:
Exception- if the clusterer class name is invalid, or the options supplied are not acceptable to the clusterer.
-
makeCopy
Creates a deep copy of the given clusterer using serialization.- Parameters:
model- the clusterer to copy- Returns:
- a deep copy of the clusterer
- Throws:
Exception- if an error occurs
-
makeCopies
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:
Exception- if an error occurs
-
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:
-
getRevision
Returns the revision string.- Specified by:
getRevisionin interfaceRevisionHandler- Returns:
- the revision
-