V
- Vector typepublic class SameSizeKMeansAlgorithm<V extends de.lmu.ifi.dbs.elki.data.NumberVector>
extends de.lmu.ifi.dbs.elki.algorithm.clustering.kmeans.AbstractKMeans<V,de.lmu.ifi.dbs.elki.data.model.MeanModel>
Modifier and Type | Class and Description |
---|---|
private class |
SameSizeKMeansAlgorithm.Meta
Object metadata.
|
static class |
SameSizeKMeansAlgorithm.Parameterizer<V extends de.lmu.ifi.dbs.elki.data.NumberVector>
Parameterization class.
|
class |
SameSizeKMeansAlgorithm.PreferenceComparator
Sort a list of integers (= cluster numbers) by the distances.
|
Modifier and Type | Field and Description |
---|---|
private static de.lmu.ifi.dbs.elki.logging.Logging |
LOG
Class logger
|
initializer, k, maxiter
distanceFunction
Constructor and Description |
---|
SameSizeKMeansAlgorithm(de.lmu.ifi.dbs.elki.distance.distancefunction.NumberVectorDistanceFunction<? super V> distanceFunction,
int k,
int maxiter,
de.lmu.ifi.dbs.elki.algorithm.clustering.kmeans.initialization.KMeansInitialization<? super V> initializer)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
protected de.lmu.ifi.dbs.elki.logging.Logging |
getLogger() |
protected de.lmu.ifi.dbs.elki.database.ids.ArrayModifiableDBIDs |
initialAssignment(List<de.lmu.ifi.dbs.elki.database.ids.ModifiableDBIDs> clusters,
de.lmu.ifi.dbs.elki.database.datastore.WritableDataStore<SameSizeKMeansAlgorithm.Meta> metas,
de.lmu.ifi.dbs.elki.database.ids.DBIDs ids) |
protected de.lmu.ifi.dbs.elki.database.datastore.WritableDataStore<SameSizeKMeansAlgorithm.Meta> |
initializeMeta(de.lmu.ifi.dbs.elki.database.relation.Relation<V> relation,
List<? extends de.lmu.ifi.dbs.elki.data.NumberVector> means)
Initialize the metadata storage.
|
protected List<de.lmu.ifi.dbs.elki.math.linearalgebra.Vector> |
refineResult(de.lmu.ifi.dbs.elki.database.relation.Relation<V> relation,
List<de.lmu.ifi.dbs.elki.math.linearalgebra.Vector> means,
List<de.lmu.ifi.dbs.elki.database.ids.ModifiableDBIDs> clusters,
de.lmu.ifi.dbs.elki.database.datastore.WritableDataStore<SameSizeKMeansAlgorithm.Meta> metas,
de.lmu.ifi.dbs.elki.database.ids.ArrayModifiableDBIDs tids)
Perform k-means style iterations to improve the clustering result.
|
de.lmu.ifi.dbs.elki.data.Clustering<de.lmu.ifi.dbs.elki.data.model.MeanModel> |
run(de.lmu.ifi.dbs.elki.database.Database database,
de.lmu.ifi.dbs.elki.database.relation.Relation<V> relation)
Run k-means with cluster size constraints.
|
protected void |
transfer(de.lmu.ifi.dbs.elki.database.datastore.WritableDataStore<SameSizeKMeansAlgorithm.Meta> metas,
SameSizeKMeansAlgorithm.Meta meta,
de.lmu.ifi.dbs.elki.database.ids.ModifiableDBIDs src,
de.lmu.ifi.dbs.elki.database.ids.ModifiableDBIDs dst,
de.lmu.ifi.dbs.elki.database.ids.DBIDRef id,
Integer dstnum)
Transfer a single element from one cluster to another.
|
protected void |
updateDistances(de.lmu.ifi.dbs.elki.database.relation.Relation<V> relation,
List<de.lmu.ifi.dbs.elki.math.linearalgebra.Vector> means,
de.lmu.ifi.dbs.elki.database.datastore.WritableDataStore<SameSizeKMeansAlgorithm.Meta> metas,
de.lmu.ifi.dbs.elki.distance.distancefunction.NumberVectorDistanceFunction<? super V> df)
Compute the distances of each object to all means.
|
assignToNearestCluster, getInputTypeRestriction, incrementalUpdateMean, logVarstat, macQueenIterate, means, medians, setDistanceFunction, setK
getDistanceFunction
makeParameterDistanceFunction
public SameSizeKMeansAlgorithm(de.lmu.ifi.dbs.elki.distance.distancefunction.NumberVectorDistanceFunction<? super V> distanceFunction, int k, int maxiter, de.lmu.ifi.dbs.elki.algorithm.clustering.kmeans.initialization.KMeansInitialization<? super V> initializer)
distanceFunction
- Distance functionk
- K parametermaxiter
- Maximum number of iterationsinitializer
- public de.lmu.ifi.dbs.elki.data.Clustering<de.lmu.ifi.dbs.elki.data.model.MeanModel> run(de.lmu.ifi.dbs.elki.database.Database database, de.lmu.ifi.dbs.elki.database.relation.Relation<V> relation)
database
- Databaserelation
- relation to useprotected de.lmu.ifi.dbs.elki.database.datastore.WritableDataStore<SameSizeKMeansAlgorithm.Meta> initializeMeta(de.lmu.ifi.dbs.elki.database.relation.Relation<V> relation, List<? extends de.lmu.ifi.dbs.elki.data.NumberVector> means)
relation
- Relation to processmeans
- Mean vectorsprotected de.lmu.ifi.dbs.elki.database.ids.ArrayModifiableDBIDs initialAssignment(List<de.lmu.ifi.dbs.elki.database.ids.ModifiableDBIDs> clusters, de.lmu.ifi.dbs.elki.database.datastore.WritableDataStore<SameSizeKMeansAlgorithm.Meta> metas, de.lmu.ifi.dbs.elki.database.ids.DBIDs ids)
protected void updateDistances(de.lmu.ifi.dbs.elki.database.relation.Relation<V> relation, List<de.lmu.ifi.dbs.elki.math.linearalgebra.Vector> means, de.lmu.ifi.dbs.elki.database.datastore.WritableDataStore<SameSizeKMeansAlgorithm.Meta> metas, de.lmu.ifi.dbs.elki.distance.distancefunction.NumberVectorDistanceFunction<? super V> df)
SameSizeKMeansAlgorithm.Meta.secondary
to point to the best cluster number except the
current cluster assignmentrelation
- Data relationmeans
- Meansmetas
- Metadata storagedf
- Distance functionprotected List<de.lmu.ifi.dbs.elki.math.linearalgebra.Vector> refineResult(de.lmu.ifi.dbs.elki.database.relation.Relation<V> relation, List<de.lmu.ifi.dbs.elki.math.linearalgebra.Vector> means, List<de.lmu.ifi.dbs.elki.database.ids.ModifiableDBIDs> clusters, de.lmu.ifi.dbs.elki.database.datastore.WritableDataStore<SameSizeKMeansAlgorithm.Meta> metas, de.lmu.ifi.dbs.elki.database.ids.ArrayModifiableDBIDs tids)
relation
- Data relationmeans
- Means listclusters
- Cluster listmetas
- Metadata storagetids
- DBIDs arrayprotected void transfer(de.lmu.ifi.dbs.elki.database.datastore.WritableDataStore<SameSizeKMeansAlgorithm.Meta> metas, SameSizeKMeansAlgorithm.Meta meta, de.lmu.ifi.dbs.elki.database.ids.ModifiableDBIDs src, de.lmu.ifi.dbs.elki.database.ids.ModifiableDBIDs dst, de.lmu.ifi.dbs.elki.database.ids.DBIDRef id, Integer dstnum)
metas
- Meta storagemeta
- Meta of current objectsrc
- Source clusterdst
- Destination clusterid
- Object IDdstnum
- Destination cluster numberprotected de.lmu.ifi.dbs.elki.logging.Logging getLogger()
getLogger
in class de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm<de.lmu.ifi.dbs.elki.data.Clustering<de.lmu.ifi.dbs.elki.data.model.MeanModel>>
Copyright © 2015 ELKI Development Team, Lehr- und Forschungseinheit für Datenbanksysteme, Ludwig-Maximilians-Universität München. License information.