ClusterType
- Type of Cluster
used in this
learn()
method.DataType
- The algorithm operates on a Collection
,
so DataType
will be something like Vector or String.public class RandomClusterInitializer<ClusterType extends Cluster<DataType>,DataType> extends AbstractRandomized implements FixedClusterInitializer<ClusterType,DataType>
Modifier and Type | Field and Description |
---|---|
protected ClusterCreator<ClusterType,DataType> |
creator
The creator for new clusters.
|
random
Constructor and Description |
---|
RandomClusterInitializer(ClusterCreator<ClusterType,DataType> creator,
java.util.Random random)
Creates a new random cluster creator.
|
Modifier and Type | Method and Description |
---|---|
RandomClusterInitializer<ClusterType,DataType> |
clone()
This makes public the clone method on the
Object class and
removes the exception that it throws. |
java.util.ArrayList<ClusterType> |
initializeClusters(int numClusters,
java.util.Collection<? extends DataType> elements)
Initializes a given number of clusters from the given elements.
|
getRandom, setRandom
protected ClusterCreator<ClusterType extends Cluster<DataType>,DataType> creator
public RandomClusterInitializer(ClusterCreator<ClusterType,DataType> creator, java.util.Random random)
creator
- the cluster creator to userandom
- the random number generator to usepublic RandomClusterInitializer<ClusterType,DataType> clone()
AbstractCloneableSerializable
Object
class and
removes the exception that it throws. Its default behavior is to
automatically create a clone of the exact type of object that the
clone is called on and to copy all primitives but to keep all references,
which means it is a shallow copy.
Extensions of this class may want to override this method (but call
super.clone()
to implement a "smart copy". That is, to target
the most common use case for creating a copy of the object. Because of
the default behavior being a shallow copy, extending classes only need
to handle fields that need to have a deeper copy (or those that need to
be reset). Some of the methods in ObjectUtil
may be helpful in
implementing a custom clone method.
Note: The contract of this method is that you must use
super.clone()
as the basis for your implementation.clone
in interface CloneableSerializable
clone
in class AbstractRandomized
public java.util.ArrayList<ClusterType> initializeClusters(int numClusters, java.util.Collection<? extends DataType> elements)
FixedClusterInitializer
initializeClusters
in interface FixedClusterInitializer<ClusterType extends Cluster<DataType>,DataType>
numClusters
- The number of clusters to create.elements
- The elements to create the clusters from.