V
- the type of NumberVector handled by this Algorithm@Title(value="COPAC: COrrelation PArtition Clustering") @Description(value="Partitions a database according to the correlation dimension of its objects and performs a clustering algorithm over the partitions.") @Reference(authors="E. Achtert, C. B\u00f6hm, H.-P. Kriegel, P. Kr\u00f6ger P., A. Zimek", title="Robust, Complete, and Efficient Correlation Clustering", booktitle="Proc. 7th SIAM International Conference on Data Mining (SDM\'07), Minneapolis, MN, 2007", url="http://www.siam.org/proceedings/datamining/2007/dm07_037achtert.pdf") public class COPAC<V extends NumberVector<?>,D extends Distance<D>> extends AbstractAlgorithm<Clustering<Model>> implements ClusteringAlgorithm<Clustering<Model>>
Reference: Achtert E., Böhm C., Kriegel H.-P., Kröger P., Zimek A.: Robust,
Complete, and Efficient Correlation Clustering.
In Proc. 7th SIAM International Conference on Data Mining (SDM'07),
Minneapolis, MN, 2007
Modifier and Type | Class and Description |
---|---|
static class |
COPAC.Parameterizer<V extends NumberVector<?>,D extends Distance<D>>
Parameterization class.
|
Modifier and Type | Field and Description |
---|---|
private static Logging |
LOG
The logger for this class.
|
static OptionID |
PARTITION_ALGORITHM_ID
Parameter to specify the clustering algorithm to apply to each partition,
must extend
ClusteringAlgorithm . |
static OptionID |
PARTITION_DISTANCE_ID
Parameter to specify the distance function to use inside the partitions
AbstractIndexBasedDistanceFunction
. |
private Class<? extends ClusteringAlgorithm<Clustering<Model>>> |
partitionAlgorithm
Get the algorithm to run on each partition.
|
private Collection<Pair<OptionID,Object>> |
partitionAlgorithmParameters
Holds the parameters of the algorithm to run on each partition.
|
private FilteredLocalPCABasedDistanceFunction<V,?,D> |
partitionDistanceFunction
Holds the instance of the preprocessed distance function
PARTITION_DISTANCE_ID . |
private FilteredLocalPCABasedDistanceFunction.Instance<V,LocalProjectionIndex<V,?>,D> |
partitionDistanceQuery
The last used distance query
|
static OptionID |
PREPROCESSOR_ID
Parameter to specify the local PCA preprocessor to derive partition
criterion, must extend
AbstractFilteredPCAIndex . |
Constructor and Description |
---|
COPAC(FilteredLocalPCABasedDistanceFunction<V,?,D> partitionDistanceFunction,
Class<? extends ClusteringAlgorithm<Clustering<Model>>> partitionAlgorithm,
Collection<Pair<OptionID,Object>> partitionAlgorithmParameters)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
TypeInformation[] |
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.
|
protected Logging |
getLogger()
Get the (STATIC) logger for this class.
|
ClusteringAlgorithm<Clustering<Model>> |
getPartitionAlgorithm(DistanceQuery<V,D> query)
Returns the partition algorithm.
|
FilteredLocalPCABasedDistanceFunction.Instance<V,LocalProjectionIndex<V,?>,D> |
getPartitionDistanceQuery()
Get the last used distance query (to expose access to the preprocessor)
Used by ERiC.
|
Clustering<Model> |
run(Relation<V> relation)
Performs the COPAC algorithm on the given database.
|
private Clustering<Model> |
runPartitionAlgorithm(Relation<V> relation,
Map<Integer,DBIDs> partitionMap,
DistanceQuery<V,D> query)
Runs the partition algorithm and creates the result.
|
makeParameterDistanceFunction, run
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
run
private static final Logging LOG
public static final OptionID PREPROCESSOR_ID
AbstractFilteredPCAIndex
.
Key: -copac.preprocessor
public static final OptionID PARTITION_DISTANCE_ID
AbstractIndexBasedDistanceFunction
.
Default value:
LocallyWeightedDistanceFunction
Key: -copac.partitionDistance
public static final OptionID PARTITION_ALGORITHM_ID
ClusteringAlgorithm
.
Key: -copac.partitionAlgorithm
private FilteredLocalPCABasedDistanceFunction<V extends NumberVector<?>,?,D extends Distance<D>> partitionDistanceFunction
PARTITION_DISTANCE_ID
.private Class<? extends ClusteringAlgorithm<Clustering<Model>>> partitionAlgorithm
private Collection<Pair<OptionID,Object>> partitionAlgorithmParameters
private FilteredLocalPCABasedDistanceFunction.Instance<V extends NumberVector<?>,LocalProjectionIndex<V extends NumberVector<?>,?>,D extends Distance<D>> partitionDistanceQuery
public COPAC(FilteredLocalPCABasedDistanceFunction<V,?,D> partitionDistanceFunction, Class<? extends ClusteringAlgorithm<Clustering<Model>>> partitionAlgorithm, Collection<Pair<OptionID,Object>> partitionAlgorithmParameters)
partitionDistanceFunction
- Distance functionpartitionAlgorithm
- Algorithm to use on partitionspartitionAlgorithmParameters
- Parameters for Algorithm to run on
partitionspublic Clustering<Model> run(Relation<V> relation)
relation
- Relation to processprivate Clustering<Model> runPartitionAlgorithm(Relation<V> relation, Map<Integer,DBIDs> partitionMap, DistanceQuery<V,D> query)
relation
- the database to run this algorithm onpartitionMap
- the map of partition IDs to object idsquery
- The preprocessor based query functionpublic ClusteringAlgorithm<Clustering<Model>> getPartitionAlgorithm(DistanceQuery<V,D> query)
public FilteredLocalPCABasedDistanceFunction.Instance<V,LocalProjectionIndex<V,?>,D> getPartitionDistanceQuery()
public TypeInformation[] getInputTypeRestriction()
AbstractAlgorithm
getInputTypeRestriction
in interface Algorithm
getInputTypeRestriction
in class AbstractAlgorithm<Clustering<Model>>
protected Logging getLogger()
AbstractAlgorithm
getLogger
in class AbstractAlgorithm<Clustering<Model>>