erock2112/Comp580 — Issue #7: How does Training Mode Work?
Author: erock2112
Created: 2012-02-17 18:49:55+00:00
State: open

Assuming we want to train the data mining model from a client, how should this be done wrt multithreading? We could implement some kind of lock which allows only one concurrent client to train the data set, or we could use atomic operations to try to ensure thread safety with multiple clients training.

Additionally, since each message from a client opens and closes a thread, only one data point can be added at a time by any client. Since new data will require rebuilding the decision tree, and rebuilding the tree will likely be very slow, when should this be done?

1) rebuild the tree with every new data point (slow)
2) after a set number of new data points (arbitrary)
3) after some time period, iff new data has been added (arbitrary)
4) in response to a clients request to rebuild the tree (requires us to work that into the comm protocol, #6).

4 looks like it might be the best option, but if a client forgets to rebuild the tree, what happens? Maybe a combo of 3 and 4 is best, setting the time period for 3 to be fairly long (hours? a day?).