Package elki.clustering.kmedoids
Class EagerPAM<O>
- java.lang.Object
-
- elki.clustering.kmedoids.PAM<O>
-
- elki.clustering.kmedoids.EagerPAM<O>
-
- Type Parameters:
O
- object datatype
- All Implemented Interfaces:
Algorithm
,ClusteringAlgorithm<Clustering<MedoidModel>>
,KMedoidsClustering<O>
@Priority(-100) @Reference(authors="R. A. Whitaker",title="A Fast Algorithm For The Greedy Interchange For Large-Scale Clustering And Median Location Problems",booktitle="INFOR: Information Systems and Operational Research 21(2)",url="https://doi.org/10.1080/03155986.1983.11731889",bibkey="doi:10.1080/03155986.1983.11731889") @Reference(authors="V. Estivill-Castro and A. T. Murray",title="Discovering Associations in Spatial Data - An Efficient Medoid Based Approach",booktitle="Proc. 2nd Pacific-Asia Conf. on Research and Development in Knowledge Discovery and Data Mining, PAKDD-98",url="https://doi.org/10.1007/3-540-64383-4_10",bibkey="DBLP:conf/pakdd/Estivill-CastroM98") public class EagerPAM<O> extends PAM<O>
Variation of PAM that eagerly performs all swaps that yield an improvement during an iteration. This has been used as early as in Whitaker's "fast interchange" heuristic, and constitutes a variant of the "local hill-climbing" approach considered by Estivill-Castro.Reference:
R. A. Whitaker
A Fast Algorithm For The Greedy Interchange For Large-Scale Clustering And Median Location Problems
INFOR: Information Systems and Operational Research 21(2)V. Estivill-Castro and A. T. Murray
Discovering Associations in Spatial Data - An Efficient Medoid Based Approach
Proc. 2nd Pacific-Asia Conf. on Research and Development in Knowledge Discovery and Data Mining, PAKDD-98- Since:
- 0.8.0
- Author:
- Erich Schubert
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
EagerPAM.Instance
Instance for a single dataset.static class
EagerPAM.Par<O>
Parameterization class.-
Nested classes/interfaces inherited from interface elki.Algorithm
Algorithm.Utils
-
-
Constructor Summary
Constructors Constructor Description EagerPAM(Distance<? super O> distance, int k, int maxiter, KMedoidsInitialization<O> initializer)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Logging
getLogger()
Get the static class logger.Clustering<MedoidModel>
run(Relation<O> relation, int k, DistanceQuery<? super O> distQ)
Run k-medoids clustering with a given distance query.
Not a very elegant API, but needed for some types of nested k-medoids.-
Methods inherited from class elki.clustering.kmedoids.PAM
getInputTypeRestriction, initialMedoids, run, wrapResult
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface elki.clustering.ClusteringAlgorithm
autorun
-
-
-
-
Field Detail
-
LOG
private static final Logging LOG
The logger for this class.
-
KEY
private static final java.lang.String KEY
Key for loggers.
-
-
Constructor Detail
-
EagerPAM
public EagerPAM(Distance<? super O> distance, int k, int maxiter, KMedoidsInitialization<O> initializer)
Constructor.- Parameters:
distance
- distance functionk
- k parametermaxiter
- Maxiter parameterinitializer
- Function to generate the initial means
-
-
Method Detail
-
run
public Clustering<MedoidModel> run(Relation<O> relation, int k, DistanceQuery<? super O> distQ)
Description copied from interface:KMedoidsClustering
Run k-medoids clustering with a given distance query.
Not a very elegant API, but needed for some types of nested k-medoids.
-
-