I do have about 700 matrices (200*200 pixels) and I would like to cluster them into 5-10 groups.

I wanted to try the k-medoids method for this but am not sure how to implement it. According to what I found out I would have to convert the 200*200 matrix into a 40000 element vector and then use that as input to the clustering. However I am not very convinced about the ability of this algorithm to handle such high dimensional data.

I read about convolutional neural networks and it seemed more suitable. However I would like to know if there is maybe a simpler algorithm that could do the job instead.

  • $\begingroup$ This is certainly broad, but given the upvoted & accepted answer, I don't think it is too broad to be answerable. I'm voting to leave open. $\endgroup$ – gung - Reinstate Monica Apr 6 '17 at 20:54

Images clustering using the pixels as features is very unlikely to work well. Standard practice is to embed the images in a feature space designed for images, then apply a clustering method on that feature space. Standard feature representations include HOG (Histogram of Oriented gradients) and SIFT/SURF features. SIFT in particular is widely used for image search, which involves similar measurements of between image distances as for clustering.

You could use a convolutional neural network to embed the images in a lower dimensional space, then apply clustering in that space. It's a lot of work though. I wouldn't recommend it unless you already have experience with neural networks.

  • 1
    $\begingroup$ This answer let me to the right direction. I discovered that what I needed was to look at the similarity between my images (for example using the HOG method) and then do a clustering based on the distance only. $\endgroup$ – user3804227 Apr 6 '17 at 17:10

Within Stanford's Course on Convolutional Neural Networks (CNN) you can find an implementation for k-Nearest Neighbor. I think the actual function for k-medoids can be applied to that.

The course will give you a good overview when to use CNN and why they are preferred over the nearest neighbor methods in general for larger datasets.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.