Class DaviesBouldinIndex
- java.lang.Object
-
- elki.evaluation.clustering.internal.DaviesBouldinIndex
-
- All Implemented Interfaces:
elki.evaluation.Evaluator,elki.result.ResultProcessor
@Reference(authors="D. L. Davies, D. W. Bouldin", title="A Cluster Separation Measure", booktitle="IEEE Transactions Pattern Analysis and Machine Intelligence 1(2)", url="https://doi.org/10.1109/TPAMI.1979.4766909", bibkey="DBLP:journals/pami/DaviesB79") public class DaviesBouldinIndex extends java.lang.Object implements elki.evaluation.EvaluatorCompute the Davies-Bouldin index of a data set.Reference:
D. L. Davies, D. W. Bouldin
A Cluster Separation Measure
IEEE Transactions Pattern Analysis and Machine Intelligence 1(2)- Since:
- 0.7.0
- Author:
- Stephan Baier
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDaviesBouldinIndex.ParParameterization class.
-
Field Summary
Fields Modifier and Type Field Description private elki.distance.NumberVectorDistance<?>distanceDistance function to use.private java.lang.StringkeyKey for logging statistics.private static elki.logging.LoggingLOGLogger for debug output.private NoiseHandlingnoiseOptionOption for noise handling.private doublepExponent p for computing the power mean.
-
Constructor Summary
Constructors Constructor Description DaviesBouldinIndex(elki.distance.NumberVectorDistance<?> distance, NoiseHandling noiseOpt, double p)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doubleevaluateClustering(elki.database.relation.Relation<? extends elki.data.NumberVector> rel, Clustering<?> c)Evaluate a single clustering.voidprocessNewResult(java.lang.Object result)double[]withinGroupDistances(elki.database.relation.Relation<? extends elki.data.NumberVector> rel, java.util.List<? extends Cluster<?>> clusters, elki.data.NumberVector[] centroids)
-
-
-
Field Detail
-
LOG
private static final elki.logging.Logging LOG
Logger for debug output.
-
noiseOption
private NoiseHandling noiseOption
Option for noise handling.
-
distance
private elki.distance.NumberVectorDistance<?> distance
Distance function to use.
-
p
private double p
Exponent p for computing the power mean.
-
key
private java.lang.String key
Key for logging statistics.
-
-
Constructor Detail
-
DaviesBouldinIndex
public DaviesBouldinIndex(elki.distance.NumberVectorDistance<?> distance, NoiseHandling noiseOpt, double p)Constructor.- Parameters:
distance- Distance functionnoiseOpt- Flag to control noise handlingp- Power mean exponent p
-
-
Method Detail
-
evaluateClustering
public double evaluateClustering(elki.database.relation.Relation<? extends elki.data.NumberVector> rel, Clustering<?> c)Evaluate a single clustering.- Parameters:
rel- Data relationc- Clustering- Returns:
- DB-index
-
withinGroupDistances
public double[] withinGroupDistances(elki.database.relation.Relation<? extends elki.data.NumberVector> rel, java.util.List<? extends Cluster<?>> clusters, elki.data.NumberVector[] centroids)
-
processNewResult
public void processNewResult(java.lang.Object result)
- Specified by:
processNewResultin interfaceelki.result.ResultProcessor
-
-