Package weka.clusterers
Class DBSCAN
- java.lang.Object
-
- weka.clusterers.AbstractClusterer
-
- weka.clusterers.DBSCAN
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,Clusterer
,CapabilitiesHandler
,OptionHandler
,RevisionHandler
,TechnicalInformationHandler
public class DBSCAN extends AbstractClusterer implements OptionHandler, TechnicalInformationHandler
Basic implementation of DBSCAN clustering algorithm that should *not* be used as a reference for runtime benchmarks: more sophisticated implementations exist! Clustering of new instances is not supported. More info:
Martin Ester, Hans-Peter Kriegel, Joerg Sander, Xiaowei Xu: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise. In: Second International Conference on Knowledge Discovery and Data Mining, 226-231, 1996. BibTeX:@inproceedings{Ester1996, author = {Martin Ester and Hans-Peter Kriegel and Joerg Sander and Xiaowei Xu}, booktitle = {Second International Conference on Knowledge Discovery and Data Mining}, editor = {Evangelos Simoudis and Jiawei Han and Usama M. Fayyad}, pages = {226-231}, publisher = {AAAI Press}, title = {A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise}, year = {1996} }
Valid options are:-E <double> epsilon (default = 0.9)
-M <int> minPoints (default = 6)
-I <String> index (database) used for DBSCAN (default = weka.clusterers.forOPTICSAndDBScan.Databases.SequentialDatabase)
-D <String> distance-type (default = weka.clusterers.forOPTICSAndDBScan.DataObjects.EuclideanDataObject)
- Version:
- $Revision: 9434 $
- Author:
- Matthias Schubert (schubert@dbs.ifi.lmu.de), Zhanna Melnikova-Albrecht (melnikov@cip.ifi.lmu.de), Rainer Holzmann (holzmann@cip.ifi.lmu.de)
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description DBSCAN()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
buildClusterer(Instances instances)
Generate Clustering via DBSCANint
clusterInstance(Instance instance)
Classifies a given instance.java.lang.String
database_distanceTypeTipText()
Returns the tip text for this propertyjava.lang.String
database_TypeTipText()
Returns the tip text for this propertyDatabase
databaseForName(java.lang.String database_Type, Instances instances)
Returns a new Class-Instance of the specified databaseDataObject
dataObjectForName(java.lang.String database_distanceType, Instance instance, java.lang.String key, Database database)
Returns a new Class-Instance of the specified databasejava.lang.String
epsilonTipText()
Returns the tip text for this propertyCapabilities
getCapabilities()
Returns default capabilities of the clusterer.java.lang.String
getDatabase_distanceType()
Returns the distance-typejava.lang.String
getDatabase_Type()
Returns the type of the used index (database)double
getEpsilon()
Returns the value of epsilonint
getMinPoints()
Returns the value of minPointsjava.lang.String[]
getOptions()
Gets the current option settings for the OptionHandler.java.lang.String
getRevision()
Returns the revision string.TechnicalInformation
getTechnicalInformation()
Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.java.lang.String
globalInfo()
Returns a string describing this DataMining-Algorithmjava.util.Enumeration
listOptions()
Returns an enumeration of all the available options..static void
main(java.lang.String[] args)
Main Method for testing DBSCANjava.lang.String
minPointsTipText()
Returns the tip text for this propertyint
numberOfClusters()
Returns the number of clusters.void
setDatabase_distanceType(java.lang.String database_distanceType)
Sets a new distance-typevoid
setDatabase_Type(java.lang.String database_Type)
Sets a new database-typevoid
setEpsilon(double epsilon)
Sets a new value for epsilonvoid
setMinPoints(int minPoints)
Sets a new value for minPointsvoid
setOptions(java.lang.String[] options)
Sets the OptionHandler's options using the given list.java.lang.String
toString()
Returns a description of the clusterer-
Methods inherited from class weka.clusterers.AbstractClusterer
distributionForInstance, forName, makeCopies, makeCopy
-
-
-
-
Method Detail
-
getCapabilities
public Capabilities getCapabilities()
Returns default capabilities of the clusterer.- Specified by:
getCapabilities
in interfaceCapabilitiesHandler
- Specified by:
getCapabilities
in interfaceClusterer
- Overrides:
getCapabilities
in classAbstractClusterer
- Returns:
- the capabilities of this clusterer
- See Also:
Capabilities
-
buildClusterer
public void buildClusterer(Instances instances) throws java.lang.Exception
Generate Clustering via DBSCAN- Specified by:
buildClusterer
in interfaceClusterer
- Specified by:
buildClusterer
in classAbstractClusterer
- Parameters:
instances
- The instances that need to be clustered- Throws:
java.lang.Exception
- If clustering was not successful
-
clusterInstance
public int clusterInstance(Instance instance) throws java.lang.Exception
Classifies a given instance.- Specified by:
clusterInstance
in interfaceClusterer
- Overrides:
clusterInstance
in classAbstractClusterer
- Parameters:
instance
- The instance to be assigned to a cluster- Returns:
- int The number of the assigned cluster as an integer
- Throws:
java.lang.Exception
- If instance could not be clustered successfully
-
numberOfClusters
public int numberOfClusters() throws java.lang.Exception
Returns the number of clusters.- Specified by:
numberOfClusters
in interfaceClusterer
- Specified by:
numberOfClusters
in classAbstractClusterer
- Returns:
- int The number of clusters generated for a training dataset.
- Throws:
java.lang.Exception
- if number of clusters could not be returned successfully
-
listOptions
public java.util.Enumeration listOptions()
Returns an enumeration of all the available options..- Specified by:
listOptions
in interfaceOptionHandler
- Returns:
- Enumeration An enumeration of all available options.
-
setOptions
public void setOptions(java.lang.String[] options) throws java.lang.Exception
Sets the OptionHandler's options using the given list. All options will be set (or reset) during this call (i.e. incremental setting of options is not possible). Valid options are:-E <double> epsilon (default = 0.9)
-M <int> minPoints (default = 6)
-I <String> index (database) used for DBSCAN (default = weka.clusterers.forOPTICSAndDBScan.Databases.SequentialDatabase)
-D <String> distance-type (default = weka.clusterers.forOPTICSAndDBScan.DataObjects.EuclideanDataObject)
- Specified by:
setOptions
in interfaceOptionHandler
- Parameters:
options
- The list of options as an array of strings- Throws:
java.lang.Exception
- If an option is not supported
-
getOptions
public java.lang.String[] getOptions()
Gets the current option settings for the OptionHandler.- Specified by:
getOptions
in interfaceOptionHandler
- Returns:
- String[] The list of current option settings as an array of strings
-
databaseForName
public Database databaseForName(java.lang.String database_Type, Instances instances)
Returns a new Class-Instance of the specified database- Parameters:
database_Type
- String of the specified databaseinstances
- Instances that were delivered from WEKA- Returns:
- Database New constructed Database
-
dataObjectForName
public DataObject dataObjectForName(java.lang.String database_distanceType, Instance instance, java.lang.String key, Database database)
Returns a new Class-Instance of the specified database- Parameters:
database_distanceType
- String of the specified distance-typeinstance
- The original instance that needs to hold by this DataObjectkey
- Key for this DataObjectdatabase
- Link to the database- Returns:
- DataObject New constructed DataObject
-
setMinPoints
public void setMinPoints(int minPoints)
Sets a new value for minPoints- Parameters:
minPoints
- MinPoints
-
setEpsilon
public void setEpsilon(double epsilon)
Sets a new value for epsilon- Parameters:
epsilon
- Epsilon
-
getEpsilon
public double getEpsilon()
Returns the value of epsilon- Returns:
- double Epsilon
-
getMinPoints
public int getMinPoints()
Returns the value of minPoints- Returns:
- int MinPoints
-
getDatabase_distanceType
public java.lang.String getDatabase_distanceType()
Returns the distance-type- Returns:
- String Distance-type
-
getDatabase_Type
public java.lang.String getDatabase_Type()
Returns the type of the used index (database)- Returns:
- String Index-type
-
setDatabase_distanceType
public void setDatabase_distanceType(java.lang.String database_distanceType)
Sets a new distance-type- Parameters:
database_distanceType
- The new distance-type
-
setDatabase_Type
public void setDatabase_Type(java.lang.String database_Type)
Sets a new database-type- Parameters:
database_Type
- The new database-type
-
epsilonTipText
public java.lang.String epsilonTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
minPointsTipText
public java.lang.String minPointsTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
database_TypeTipText
public java.lang.String database_TypeTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
database_distanceTypeTipText
public java.lang.String database_distanceTypeTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
globalInfo
public java.lang.String globalInfo()
Returns a string describing this DataMining-Algorithm- Returns:
- String Information for the gui-explorer
-
getTechnicalInformation
public TechnicalInformation getTechnicalInformation()
Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.- Specified by:
getTechnicalInformation
in interfaceTechnicalInformationHandler
- Returns:
- the technical information about this class
-
toString
public java.lang.String toString()
Returns a description of the clusterer- Overrides:
toString
in classjava.lang.Object
- Returns:
- a string representation of the clusterer
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classAbstractClusterer
- Returns:
- the revision
-
main
public static void main(java.lang.String[] args)
Main Method for testing DBSCAN- Parameters:
args
- Valid parameters are: 'E' epsilon (default = 0.9); 'M' minPoints (default = 6); 'I' index-type (default = weka.clusterers.forOPTICSAndDBScan.Databases.SequentialDatabase); 'D' distance-type (default = weka.clusterers.forOPTICSAndDBScan.DataObjects.EuclideanDataObject);
-
-