A lot of progress was made during the last couple of days…
For starters, I extended the feature set to also include statistics that are calculated from the first and second derivatives of each sensor value stream, resulting in a total of 1560 features. Since this is quite a lot to take in, I made use of some Weka functions that search for the best set of attributes, reducing the number of features (i.e. attributes) to only a fraction of the initial set (e.g. 267 attributes is the maximum that has been recorded among all users so far).
Furthermore, to make sure that the best classifier will be used for subsequent detection sessions, all available base classifiers have to be tested. The best set of classifiers can then be used to build some kind of meta-classifier, again comparing all available meta-classification methods and choosing the best one. This process will be repeated for each user as to provide all users with a personal (and optimal) classifier for subsequent detection. So far, I have implemented the first part of this process (comparing all available base classifiers) and the results (i.e. accuracy based on cross validation) are quite promising!
However, since training (including the attribute selection process) only one classifier is already considered to be a quite intensive operation, I figured that it was best to perform these tests on my laptop instead of on a mobile Android device. Unfortunately, this change of scenery included porting all necessary classes from Android Studio to Eclipse and decoupling them from any Android-specific functionality. On top of that, I had to implement a file reader to be able to import the SQLite data that was previously stored on my Android device (i.e. all user sessions) and tune this reader to the specific formats that were used in the corresponding file writer that I implemented a while ago.
So, it might not be tomorrow, it might not even be the day after, but somewhere next week the optimal classifier is going to be built. And it will be awesome!