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 void
buildClusterer
(Instances data) Generates a clusterer.int
clusterInstance
(Instance instance) Classifies a given instance.double[]
distributionForInstance
(Instance instance) Predicts the cluster memberships for a given instance.static Clusterer
Creates 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 Clusterer
Creates a deep copy of the given clusterer using serialization.abstract int
Returns 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:
buildClusterer
in 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:
clusterInstance
in 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:
distributionForInstance
in 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:
numberOfClusters
in 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:
getCapabilities
in interfaceCapabilitiesHandler
- Specified by:
getCapabilities
in interfaceClusterer
- Returns:
- the capabilities of this object
- See Also:
-
getRevision
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Returns:
- the revision
-