I have a dataset composed of few features :

customerId, actionDay1, SalesDay1, actionDay20, SalesDay20, actionDay30, SalesDay30

action can be :

  • call
  • email
  • face 2 face
  • nothing

sales : amount of sales in $

my goal here is to predict the best action we have to take in any day (1, 20 or 30) to sale more.

some customer prefers email, some prefer to be called every time, some others prefer to not be contacted to buy.

the pattern is different for each customer. my first thought was to apply reinforcement learning for this problem, but I found some difficulty to do the right environment, but also the reward function. a reinforcement learning would work without data and the model will be different for each customer. I would like to have a model that can approximate the behavior of all customers using the dataset I have.

does anyone have an idea on how I can approach this problem using reinforcement learning or something different like Recurrent Neural Net?

  • $\begingroup$ I understand that you've already explored the patterns route in the customers' response and did not find any. And now you want to try the Reinforcement learning route. Answer to your question will be surely interesting. Good Luck! $\endgroup$ Jul 9, 2019 at 15:41
  • $\begingroup$ What kind of information on the client are you planning to use? just the id or some other info ? like a profile of a user and not the exact user himself $\endgroup$
    – Blenz
    Aug 9, 2019 at 13:16

1 Answer 1


I don't know if reinforcement learning is right for this problem. A reinforcement learning model needs a simulated "game" environment where it can interact and select actions initially at random. But real customer reactions are hard to simulate, and you don't want the model randomly sending out spam e-mails before it's trained.

There are other ways to train a model to recommend an action based on existing data. If you want to keep it simple, you can perform a regression to estimate each action's impact on likelihood of a sale. If you have more data and want to get more complex, perhaps look into recommender systems (Netflix, Amazon, etc.)

  • $\begingroup$ A recommender system can be a good idea. but in this case I would like to recommend an action to maximize sales and not recommend action to have the same sales as another customer $\endgroup$
    – John Mack
    Jul 9, 2019 at 16:14
  • $\begingroup$ @bhailatmohamed I'm not sure what your data looks like, but my best advice is to try to find a paper, kaggle completion, or some other use case similar to yours and copy what they are doing. RL is probably not feasible without a simulated environment, so try to keep an open mind. $\endgroup$
    – Jack
    Jul 9, 2019 at 17:05

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.