jsat.clustering.kmeans
Class ElkanKMeans
- java.lang.Object
-
- jsat.clustering.ClustererBase
-
- jsat.clustering.KClustererBase
-
- jsat.clustering.kmeans.KMeans
-
- jsat.clustering.kmeans.ElkanKMeans
-
- All Implemented Interfaces:
- java.io.Serializable, Clusterer, KClusterer, Parameterized
public class ElkanKMeans extends KMeans
An efficient implementation of the K-Means algorithm. This implementation uses the triangle inequality to accelerate computation while maintaining the exact same solution. This requires that theDistanceMetricused supportDistanceMetric.isSubadditive().
Implementation based on the paper: Using the Triangle Inequality to Accelerate k-Means, by Charles Elkan- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class jsat.clustering.kmeans.KMeans
DEFAULT_SEED_SELECTION
-
-
Constructor Summary
Constructors Constructor and Description ElkanKMeans()Creates a new KMeans instance.ElkanKMeans(DistanceMetric dm)Creates a new KMeans instanceElkanKMeans(DistanceMetric dm, java.util.Random rand)Creates a new KMeans instanceElkanKMeans(DistanceMetric dm, java.util.Random rand, SeedSelectionMethods.SeedSelection seedSelection)Creates a new KMeans instance.ElkanKMeans(ElkanKMeans toCopy)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description ElkanKMeansclone()booleanisUseDenseSparse()Returns if Dense Sparse acceleration will be used if availablevoidsetUseDenseSparse(boolean useDenseSparse)Sets whether or not to useDenseSparseMetricwhen computing.-
Methods inherited from class jsat.clustering.kmeans.KMeans
cluster, cluster, cluster, cluster, getDistanceMetric, getIterationLimit, getMeans, getSeedSelection, setIterationLimit, setSeedSelection, setStoreMeans, supportsWeightedData
-
Methods inherited from class jsat.clustering.ClustererBase
createClusterListFromAssignmentArray, getDatapointsFromCluster
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface jsat.parameters.Parameterized
getParameter, getParameters
-
-
-
-
Constructor Detail
-
ElkanKMeans
public ElkanKMeans(DistanceMetric dm, java.util.Random rand, SeedSelectionMethods.SeedSelection seedSelection)
Creates a new KMeans instance.- Parameters:
dm- the distance metric to use, must supportDistanceMetric.isSubadditive().rand- the random number generator to use during seed selectionseedSelection- the method of seed selection to use
-
ElkanKMeans
public ElkanKMeans(DistanceMetric dm, java.util.Random rand)
Creates a new KMeans instance- Parameters:
dm- the distance metric to use, must supportDistanceMetric.isSubadditive().rand- the random number generator to use during seed selection
-
ElkanKMeans
public ElkanKMeans(DistanceMetric dm)
Creates a new KMeans instance- Parameters:
dm- the distance metric to use, must supportDistanceMetric.isSubadditive().
-
ElkanKMeans
public ElkanKMeans()
Creates a new KMeans instance. TheEuclideanDistancewill be used by default.
-
ElkanKMeans
public ElkanKMeans(ElkanKMeans toCopy)
-
-
Method Detail
-
setUseDenseSparse
public void setUseDenseSparse(boolean useDenseSparse)
Sets whether or not to useDenseSparseMetricwhen computing. This may or may not provide a speed increase.- Parameters:
useDenseSparse- whether or not to compute the distance from dense mean vectors to sparse ones using acceleration
-
isUseDenseSparse
public boolean isUseDenseSparse()
Returns if Dense Sparse acceleration will be used if available- Returns:
- if Dense Sparse acceleration will be used if available
-
clone
public ElkanKMeans clone()
-
-
DataMelt 3.0 © DataMelt by jWork.ORG