I have a set of around 200,000 training instances. Each training instance consists of an attribute called $duration$, a discrete integer type and a time series of floating-point values, in form of a vector of length=$duration$. So if each training instance is to be considered a vector, it is of a length $duration+1$.
The problem is is to build a classifier and while I was working on the problem, I tried the following approach:
Because each training vector had a different length equal to the duration attribute, I decided to build different classifiers for different durations. In this way, I could do away with the problem of comparing 2 time series of different lengths.
Now I had to divide the data into groups where each member would have the same duration. This led to segregating the data into 20 groups (for different durations) with 10000 instances each. Several have questioned me saying that 10,000 might not be enough to build a model at all. I have tried to convince myself that such a 10,000 may be enough by the following reasoning:
Take for example a decision tree. It works by deciding on a particular attribute and building recursively, sub-trees as its children. When the subtrees are created, they are done so by using lesser number of training instances than the number used for training its parent node as the the training instances used to train the subtree is a subset of instances in the training set which have a specific value of the attribute on the parent node as per the branch. In this manner, as a decision tree grows down, the no. of training instances it uses to create a sub-tree reduces, but it doesnt mean that the subtrees down the tree by any means are incorrect or unjustified.
Questions:
When I divided my data into groups and built for models for each group, didnt I do a similar thing (and implicitly gave a decision tree like structure to the classifier)? Are my colleagues right in questioning my approach?
Also note that duration is an attribute which contributes heavily towards learning the target function. By dividing into groups and building a classifier for each group, am I not able to capture the effect of duration on the target? Are there better ways to achieve results in this case?