Predicting and clustering at the same time?
Your solution seems interesting. However, it implies that the customers’ value is assessed through whether they are active or not in next period. It might be interesting to look at the purchase by customer for, say future 8 weeks (or future 6 weeks or 12 weeks for that matter – the time frame depends a lot on the particularity of the business). This measurement reflects whether customers are active or not in the next period and also quantifies their 'activity’. 

For a somewhat similar project I implemented the following solution:


Start by randomly selecting one breakpoint for each of the three dimensions (RFM); by breakpoint I mean a random value among the unique values of Recency, another randomly selected value for Frequency, and another one for Monetary.
Draw some initial segments based on these three breakpoints by selecting groups of customers that are relatively similar in terms of RFM according to the selected breakpoints. As there are 3 breakpoints (one per variable), you will get 2^3 segments because each variable will be broken down in 2 parts leading to 8 segments in total. In other words, you will have:


Segm 1: Recency &lt; breakpoint_Recency &amp; Frequency &lt; breakpoint_Frequency &amp; Monetary &lt; breakpoint_Monetary

Segm 2: Recency &lt; breakpoint_Recency &amp; Frequency >= breakpoint_Frequency &amp; Monetary &lt; breakpoint_Monetary

Segm 3: Recency &lt; breakpoint_Recency &amp; Frequency &lt; breakpoint_Frequency &amp; Monetary >= breakpoint_Monetary

Segm 4: Recency &lt; breakpoint_Recency &amp; Frequency >= breakpoint_Frequency &amp; Monetary >= breakpoint_Monetary

Segm 5: Recency >= breakpoint_Recency &amp; Frequency &lt; breakpoint_Frequency &amp; Monetary &lt; breakpoint_Monetary

Segm 6: Recency >= breakpoint_Recency &amp; Frequency >= breakpoint_Frequency &amp; Monetary &lt; breakpoint_Monetary

Segm 7: Recency >= breakpoint_Recency &amp; Frequency &lt; breakpoint_Frequency &amp; Monetary >= breakpoint_Monetary

Segm 8: Recency >= breakpoint_Recency &amp; Frequency >= breakpoint_Frequency &amp; Monetary >= breakpoint_Monetary


Compute the mean of future 8 weeks purchases for each of the resulted segments
Then, of course, this segmentation was random and is not the optimal one. To get the optimal segmentation you then implement a Genetic Algorithm to re-do the previous procedure and explore the space for better breakpoints. By this you will likely get the optimal segmentation of homogeneous customers in terms of their purchasing behavior (as characterized by RFM) – optimal with respect to their value (as you decide to define their value).


By the way, the fitness function for the GA aims to maximize the mean of future 8 weeks purchases per segment. Or you can also set your own objective on how to measure the value of customers and define the fitness function accordingly.

Hope this helps. Good luck!

Update: This solution allows you to find 'the homogenous groups of customers' and 'rank segments per value'. I am not sure if this is what you meant by 'rank customers per value'. In my view supervised clustering defeats the idea of individual ranking (but maybe I am wrong). 
Moreover, customers change behaviors from one period to the other and it is perhaps better to cluster them in terms of purchasing behavior, not to rank individuals at a point in time. In this way, when a customer changes behavior (in terms of RFM), we know where s/he went (i.e. in which cluster), and thus we can assess whether s/he 'improved' or not. In the latter case, marketing people can take action to incentivize the concerned customer to move back into the better off segment.