What is the best multi class classification method with (potentially) endless training input?
The classificator should get trained while a user interacts with the system.
At this time it gets ~ 30 training sets / second for a potentially endless time (probably 30 minutes - 1 hour).
The training must be continuus: When a user cannot be classified with a minimal certainty, the user should be treated as new and the classificator gets trained for a new class.
Which method/library (C#) is suitable for that problem? I will not be able to save all the training data (if all sets will be kept).
1 Answer
Naive Bayes, LDA and QDA, Decision Trees, Random Forests, Nearest Neighbors etc can be used.
Hashing can be used to handle endless inputs.
I am not good at C, but you can use hashing to include new user in one of the existing user. This will induce Exploit-Explore dilemma.( Thompson sampling and multi-arm bandit for your further study). This way you can have online/real time learning/prediction.
Another classification in batch data is to be performed so that new variables can have exact separate class.
So solution can be a combination of online+Batch learning for your problem.
-
$\begingroup$ How to hash/create a hashing function for vectors? One date consists of 20 or more doubles. Can you point me to literature for that? $\endgroup$ Commented Jul 20, 2016 at 16:26
-
$\begingroup$ interactivepython.org/runestone/static/pythonds/SortSearch/… this is one of the simplest way of hashing. $\endgroup$ Commented Jul 21, 2016 at 7:39