Backward calculation for customer segmentation

52 Views Asked by At

I am doing customer segmentation, each customer has 3 attributes X, Y and Z. Based on the values of these 3 attributes, I separate them into 6 groups, say A - F.

              X     Y     Z Group
John D.     300    35  1000     A
Adam S.     230    40  2500     B
Will Y.     500    55  3000     C

Then I count the number of customers falling into each group:

n(A) n(B) n(C) n(D) n(E) n(F)
5    5    20   30   20   20

Here is how I classify the customers based on x1, x2, y1, y2, z1, z2:

X               Y               Z       Group
>x1 and <=x2    <=y1            >z2     A
>x2             <=y1            >=0     A
<=x1            <=y1            >z2     B
>x1 and <=x2    <=y1            <=z2    B
>x1 and <=x2    >y1 and <=y2    >z2     C
>x2             >y1 and <=y2    >=0     C
<=x1            <=y1            <=z2    D
<=x1            >y1 and <=y2    >=0     D
>x1 and <=x2    >y1 and <=y2    <=z2    D
>x1 and <=x2    >y2             >z2     E
>x2             >y2             >=0     E
<=x1            >y2             >=0     F
>x1 and <=x2    >y2             <=z2    F

So that’s how I start from x1, x2,... to get n(A), n(B), n(C)...

What I want to do is to work backward from n(A), n(B), n(C), ..., n(F) to get x1, x2, y1, y2, z1, z2. (By changing only the numbers, the grouping rules in the table remain unchanged.)

I'm not even sure what type of problem I'm dealing with. I thought it was linear programming but I couldn't seem to formulate the problem.

Any ideas how I can solve this problem?