If possible, I'd like to add an implementation of self-organizing maps to linfa-clustering. Unlike many of the clustering algorithms already implemented in linfa, SOMs preserve topological relationships, offering a continuous map from n-dimensional space to a 2D grid. This makes SOMs particularly useful for visualizing higher-dimensional data compared to many alternatives such as k-means clustering, which simply partitions the data into clusters without necessarily maintaining spatial relationships or "distance" between points.