Let's say I want to perform a clustering analysis of paintings based on the their use of colour. This gives me three levels of analysis:

  • L1: Individual paintings
  • L2: Individual colours present
  • L3:Individual aspects of colour use

Thus, Mondrian's Composition in Red, Blue and Yellow (L1) uses 3 colours (L2) in a linear style using primary hues (L3).

Let's assume further that L2 always has the same entries (say, the colours of the visual spectrum) and that I have numerical measures for every metric in L3, which are also fixed in number (say, hue, area and saturation).

My problem is that I can't seem to find out the best clustering algorithm for this type of data. K-means and spherical k-means require that each painting be representable as a vector of m features; my data further decomposes each of the m features into n further features. So, my questions are:

  1. Does this matter? Given that L2 is constant, do I need to worry about it all, so long as the order of components is the same?

  2. If it does matter, are there are any clustering algorithms that will naturally deal with three-level data like this? (Note that I might at some point like to take colour rather than painting as my superordinate category.)

  • $\begingroup$ if you don't want to worry about features, you can also use a pre-trained CNN (CNNs are the current state-of-the-art in image classification) to get an embedding for each painting, and then perform some sort of unsupervised clustering (via K-means, Knns, etc.) $\endgroup$ – Antoine Jul 18 '17 at 9:47
  • $\begingroup$ Thanks––though I do hope to keep the features in focus, possibly as predictors, and a CNN might not allow this? $\endgroup$ – Lodore66 Jul 18 '17 at 12:02
  • $\begingroup$ the CNN will give you a standardized vector (where each entry corresponds to the loading on each feature of the feature space) for each painting in your dataset... The only difference is that you can't prescribed your own features, the pre-trained CNN will already have learned them (or will learn them for your dataset, if you can manage to train the CNN on your dataset. feasible if you have sufficient observations and labels associated with them, e.g., that correspond to some categories). But your setting seems to be unsupervised, so you might not have labels $\endgroup$ – Antoine Jul 18 '17 at 13:14

Your Answer

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

Browse other questions tagged or ask your own question.