public class NeuralGas extends KMeans
Compared to SOM, neural gas has no topology of a fixed dimensionality (in fact, no topology at all). For each input signal during learning, the neural gas algorithm sorts the neurons of the network according to the distance of their reference vectors to the input signal. Based on this "rank order", neurons are adapted based on the adaptation strength that are decreased according to a fixed schedule.
The adaptation step of the Neural Gas can be interpreted as gradient descent on a cost function. By adapting not only the closest feature vector but all of them with a step size decreasing with increasing distance order, compared to k-means clustering, a much more robust convergence of the algorithm can be achieved.
KMeans
,
GrowingNeuralGas
,
NeuralMap
OUTLIER
Constructor and Description |
---|
NeuralGas(double[][] data,
int k)
Constructor.
|
NeuralGas(double[][] data,
int k,
double lambda_i,
double lambda_f,
double eps_i,
double eps_f,
int steps)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
String |
toString() |
centroids, distortion, lloyd, lloyd, lloyd, predict
getClusterLabel, getClusterSize, getNumClusters
public NeuralGas(double[][] data, int k)
k
- the number of units in the neural gas. It is also the number
of clusters.public NeuralGas(double[][] data, int k, double lambda_i, double lambda_f, double eps_i, double eps_f, int steps)
k
- the number of units in the neural gas.lambda_i
- the initial value of lambda. lambda_i and lambda_f are
used to set the soft learning radius/rate, i.e. determining the number
of neural units significantly changing their synaptic weights with
each adaptation step.lambda_f
- The final value of lambda.eps_i
- the initial value of epsilon. epsilon_i and epsilon_f
are the initial and final learning rate respectively.eps_f
- the final value of epsilon.steps
- the number of iterations. Note that for one iteration, we
mean that the learning process goes through the whole dataset.Copyright © 2015. All rights reserved.