6
$\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$
  • $\begingroup$ (+1): A very interesting question $\endgroup$ – steffen Jun 17 '11 at 10:27
2
$\begingroup$

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

$\endgroup$

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

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

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

$\endgroup$

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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