# Which algorithm for a project about online machine learning?

I have a basic understanding of how machine learning works, but my knowledge isn't enough in order to develop a personal project I would like to start.

I want to develop a system based on online machine learning, aimed to binary classification:

• The inputs/features I should consider are only categorical (but I may as well introduce also numerical inputs in the future, I cannot exclude the possibility as I'm still not sure about the features of the samples I will consider).
• I would like to have some decay notion for older samples, in order to enhance the responsiveness of the system to changes.
• I'm searching for something more like a compromise between complexity and correctness of the results.

This is the context. I want to write a software for writing down lists of things to do. Each list will be associated to a category by the user itself (the categories are not fixed, the user will be able to edit them). By relying on the history of previous lists, I want to predict what the user will put in the next one. Thus, basically, given a particular todo written in the past few lists, I want to classify it as "insert in list" or "do not insert in list".

Could you give me some pointers, please? I need your help in order to focus towards the most fitting algorithms and techniques for my needs. Many thanks in advance.

• can you narrow down or give some idea what you want to classify? something on the web? images? pages? text? etc – vzn Sep 6 '12 at 18:21
• True, I should. I added some more details in the question, thanks a lot. – Riccardo T. Sep 7 '12 at 17:04
• its a start but what kind of list? unless there is some relationship between list $L_i$ and $L_j$, what patterns can be recognized? or is there a relationship between $L_i$ and the time it is entered? etc – vzn Sep 8 '12 at 19:50
• Well, I'm going to assume that, most likely, the list the user is gonna insert will have a (large) subset of elements in common with the majority of the more recent ones. Otherwise said, the lists made by the user will change in the time, but not too much. If the user, e.g., puts the todo Y in most of the recent other lists, I want to classify Y as to be inserted in the next one also. If he put an item X only in the last one, but not once previously, I want to classify it as not to be automatically inserted in the next list. – Riccardo T. Sep 9 '12 at 12:33
• Also, I wanted to develop a classifier in order to be able to decide to automatically insert also items not inserted recently in the latest few lists of the same type of the next one (the type of the next one is known), but that have been always inserted in the majority of lists of the other types lately. – Riccardo T. Sep 9 '12 at 12:38