Package elki.clustering.kmedoids
Class FasterPAM<O>
- java.lang.Object
-
- elki.clustering.kmedoids.PAM<O>
-
- elki.clustering.kmedoids.FastPAM1<O>
-
- elki.clustering.kmedoids.FastPAM<O>
-
- elki.clustering.kmedoids.FasterPAM<O>
-
- Type Parameters:
O- object datatype
- All Implemented Interfaces:
Algorithm,ClusteringAlgorithm<Clustering<MedoidModel>>,KMedoidsClustering<O>
- Direct Known Subclasses:
FasterCLARA
@Reference(authors="Erich Schubert and Peter J. Rousseeuw", title="Fast and Eager k-Medoids Clustering: O(k) Runtime Improvement of the PAM, CLARA, and CLARANS Algorithms", booktitle="arXiv preprint", url="https://arxiv.org/abs/2008.05171", bibkey="DBLP:journals/corr/abs-2008-05171") public class FasterPAM<O> extends FastPAM<O>
Variation of FastPAM that eagerly performs any swap that yields an improvement during an iteration. Compared toEagerPAMit considers all current medoids together, and chooses the best of these; hence apart from computing candidate swaps O(k) times faster, it will also be able to sometimes choose better swaps.Reference:
Erich Schubert and Peter J. Rousseeuw
Fast and Eager k-Medoids Clustering: O(k) Runtime Improvement of the PAM, CLARA, and CLARANS Algorithms
Preprint- Since:
- 0.8.0
- Author:
- Erich Schubert
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classFasterPAM.InstanceInstance for a single dataset.static classFasterPAM.Par<O>Parameterization class.-
Nested classes/interfaces inherited from interface elki.Algorithm
Algorithm.Utils
-
-
Constructor Summary
Constructors Constructor Description FasterPAM(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 LogginggetLogger()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 statistics logging.
-
-
Constructor Detail
-
FasterPAM
public FasterPAM(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:KMedoidsClusteringRun k-medoids clustering with a given distance query.
Not a very elegant API, but needed for some types of nested k-medoids.
-
-