thanks for the ideas, guys.
the eye can spot clusters; how can I get the computer to 'see' them? I want to automate this as much as possible.
I'm now thinking it could be something dynamic, sort of a rebalancing approach. start out with everyone (sample of 1) in the same bucket. add next item, those 2 are 'close' since they are just 2 points. as you add more ports, at some point that single bucket is worth dividing; split it, somehow (from 1 into 2 parts, or more than 2 parts?) and then keep running that same kind of alg.
I think the buckets have to be large, then somehow start to self-shrink based on population size. if we have a bucket that has value 10 and 11 (say 1010 and 1011, for the 1k initial target) and we lump the 10's and 11's into the same bucket, due to how the algorithm ran. after some time, we might find only a few 11's and mostly 10's in that bucket. perhaps its worth having a bucket of 'pure tens' (that are an exact match) than polluting that bucket with some mixed values. (continue to apply this beyond integer-thinking, of course).
it feels like there is some self-sizing approach, somehow. I don't know if I'm right or even close (?).
thing is, I (the user) may not know, apriori, what the bucket radius should be, for grouping values. you may choose to pick the 1010 resistors since you have 12 of them all of the same value, vs the 1004 resistors that have 2 at that value, 1 at 1002, 1 at 1005 and so on.
its like I want to run the algo, have the buckets grow in some smart way, then sort the buckets by population (mode).
??