In e-commerce site, consumers would provide a overall rating with multi-aspect ratings. For example, if a consumer purchase a camera, he would provide a rating info as follows:

User    Product    Size/Wight    Appearance    Battery    Price    Display    Overall
A       Camera 1      4             2              3        5        5          4 
B       Camera 2      4             2              3        5        5          2
C       Camera 3      2             4              5        1        2          4
D       Camera 4      2             4              5        1        2          2

In practice, in our dataset, a consumer would only purchase a camera. So, how can we determine the correlation between pair of users (A vs B, or A vs C, etc) using the provided heterogeneous data.

  • 1
    $\begingroup$ Correlation is something one computes between variables, not between users. Are you looking to see how variables relate to one another, e.g., whether smaller size tends to mean lower price? Or are you looking to devise a system to assess how similar different users are to one another (a less straightforward problem requiring more subjective criteria)? $\endgroup$ – rolando2 Oct 29 '11 at 13:44
  • $\begingroup$ I think different consumers would contains various preferences among these features (Size, Appearance, etc). Now, we have the overall rating and aspect ratings, so, i think we can get something interesting from these mutual rating information. $\endgroup$ – Charlie Epps Oct 30 '11 at 2:29

Cluster analysis might be your answer. It is a family of methods used to determine the degree of similarity among different cases (in your instance, cases would mean either people or cameras). There are many cluster analysis methods, and even within a given method there are many options or specifications to be chosen by the analyst. 10 different analysts might arrive at 10 different solutions. So I can't give you a recipe that you can follow in order to achieve your goal; I don't think anyone can.

Multidimensional scaling is another approach to seeing how the different cases compare to one another. (Most commonly it is applied to variables, but it can also map cases in N-dimensional space.) If anything, though, it is even more technical than cluster analysis.

As you read up on these things, you might also want to look into perceptual mapping or the Galileo technique.

  • $\begingroup$ for the clustering approach, the most important issue is to find the similarity metric. However, in my instance, one consumer would only purchase a single product. So, for the users who purchased different products, we can't directly compute the similarity between them using the given ratings. $\endgroup$ – Charlie Epps Oct 30 '11 at 5:15

I think you are using the English meaning of correlation but looking for something known in literature as 'Association rule learning' - it shows how the buying options are related. e.g., if someone rates size/weight high are they equally likely to do so for batter too??

This won't work between individual users but will go over the entire data set and decide the association. The most common algorithm taught to beginners is A Priori and you may want to have a look at it to see if it suits your needs to start with. What @rolando2 suggests is also good - there are cluster algorithms like Birch that could help you with it too!

Hope this helps...

  • 1
    $\begingroup$ traditional clustering or association rule learning approach would not work here. Noted that a consumer would have bought only a single product. So, the association rule would not probable. However, The consumer provide the aspects ratings and overall ratings. So, i think we can get the probably similarity between pair of users given these ratings info. $\endgroup$ – Charlie Epps Oct 31 '11 at 6:05

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.