views:

121

answers:

1

I have a 2 dimensional array forming a table:

[color][number][shape   ]
-------------------------
[black][10    ][square  ]
[black][10    ][circle  ]
[red  ][05    ][triangle]
[red  ][04    ][triangle]
[green][11    ][oval    ]

and what I want to do is group largest common denominators, such that we get:

3 groups

  • group #1: color=black, number=10, shapes = [square, circle]
  • group #2: color=red, shape=triange, numbers = [05,04]
  • group #3: color=green, number=11, shape = oval

I wrote code that will handle a 2 "column" scenario, then I needed to adjusted it for 3 and I was figuring I might as well do it for n. I wanted to check first if there is some literature around this but I can't think of what to start looking for!

+1  A: 

Data Clustering Algorithms is the closest thing I could find.

And your space is 3-dimensional where each point is identified by 3-tuple (color,number,shape).

  1. http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/
  2. http://en.wikipedia.org/wiki/Cluster_analysis
TheMachineCharmer
your references pointed me to "Correlation Clustering" which is what I wanted, thanks!http://www.cs.cmu.edu/~shuchi/papers/clusteringfull.pdf
rehanift