Since a few months ago, I shifted my research focus towards unsupervised learning and parameterless clustering. As one might notice, even unsupervised learning algorithms require supervision over their learning process, as there are few to numerous parameters to be optimized. In older clustering algorithms such as K-Means, the number of parameters is always considered an input. Furthermore, while density-based methods such as DBSCAN do not rely on the number of clusters, they do however rely on two other parameters which help them detect outliers and find arbitrary shaped clusters. Therefore, I set out to find a solution while exploring Self-Organizing Maps (SOMs).

Self-Organizing Maps are classified as neural networks which can serve as clustering methods. These networks map records to the closest column vector of their kernel, which in the case of clustering are the centroids. While these maps also require the number of clusters, which is the number of their output neurons, they also require a learning rate, a neighborhood radius and decaying functions for both. As me and my research partner set out to create an adaptive SOM which would add to its output neurons, akin to creating new clusters, and also restart the values of the learning rate and the radius whenever they became ineffectively small, but room for improvement was still vast. This room for improvement was measured by the analysis of clusters and their proximity with their corresponding records which was then analyzed by statistical measures for outlier detection. The algorithm would continue to break up clusters as long as more than one outlier was present in a single one.

The problem with this idea was complexity, as well as the mixed-up nature of the SOM. SOMs are usually trained once and since the beginning of this training, their learning rates and radius starts a decaying process. By creating new clusters, the training process would have to be restarted. Because of this, the network would have to be trained numerous times over and over before reaching an optimal number of clusters.

As a result of these problems, after a few weeks of working on this, we decided to move on to a clustering initialization algorithm, which not only improves K-Means and its performance and convergence, but also attempts to find an optimal number of clusters as well.