7
$\begingroup$

My data takes the form of a stream of events for each customer in my sample. For a given customer, the stream takes the form of a list of events over time:

  • At T1, customer C1 bought 1 unit of product X
  • At T2, customer C2 bought 1 unit of product X
  • At T3, customer C1 contacted customer service
  • At T9, customer C1 bought 3 units of product Y, etc.

I am trying to predict whether the customer will make another purchase in the next 3 months based on their previous history.

Most approaches I have read about and experimented with involve propositionalization: that is, computing some summary statistics on the stream and feeding those into traditional decision trees or neural nets. For example,

Customer 1: Avg purchase prev month = $34, Avg time between purchases = 6 days, Time since last purchase = 25 days, Slope of purchase volume last 6 months = -0.45

Customer 2: Avg purchase prev month = $64, Avg time between purchases = 20 days, Time since last purchase = 5 days, Slope of purchase volume last 6 months = +0.05

etc

While this has produced some useful models, I can't help but feel I'm loosing a lot of information by using only the statistics of summary.

Are there any machine learning techniques out there that are capable of learning from the streams themselves?

Are there any good starter resources for developing a home grown AI system that would be capable of building and updating a set of rules as new data comes in from the stream for each customer?

$\endgroup$
1
  • $\begingroup$ (+1): A very interesting question $\endgroup$
    – steffen
    Commented Jun 17, 2011 at 10:27

2 Answers 2

2
$\begingroup$

The most related technique I know of is described in a talk at ACM Data Mining SIG by Ted Dunning.

$\endgroup$
1
  • $\begingroup$ That's exactly what I was looking for! Now I just have to figure out his math... $\endgroup$
    – akbertram
    Commented Jun 17, 2011 at 14:02
1
$\begingroup$

You can try recurrent neural networks: neural networks for time series/sequences. I have given an explanation here.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.