Classification algorithm to predict next purchase?

The problem I am trying to solve has example training data and test data similar to the sample data frame below. Let’s assume that the training data has 10,000 rows and test data has 2000 rows. Now every user comes to the website and performs one of the 3 activities on a particular day:

UserID  Date    Activity
123 2013-07-11  Website_Login
123 2013-07-11  Form_Submit
123 2013-07-15  Website_Login
124 2013-07-17  Website_Login
125 2013-07-18  Purchase
126 2013-07-25  Website_Login
126 2013-07-26  Form_Submit
126 2013-08-01  Website_Login
126 2013-08-05  Purchase
126 2013-08-12  Website_Login

Goal : Which activities are most useful in predicting user purchase in the future? Predict next 25 UserID’s who are likely to purchase?

My Understanding 1: From my knowledge this is a classification problem that cant be solved using algorithms like Random Forests and Logistic regression because the activity types do not further have additional activities and the sort. The solution according to me could be derived using a more standard technique like Naive Bayes or Nearest Neighbor algorithms.

My Understanding 2: Further is this a type of recommendation problem, if so I do not think Content based filtering would work as there are very less features, it should be better to use collaborative filtering as I would utilize the Date field.

My Understanding 3: Will One hot encoding of the Activity field help me (Make 3 separate features for activity) and converting the Date field into (Day, Month, Year) help?

I would like to know your thoughts and opinions of what kind of classification algorithm might give me the best prediction of a User that might purchase next.

Sub_thought: It feels like the number of features are too less and it’s confusing me.