Constructs a MatrixRow for a single instance.
Constructs a MatrixRow for a single instance. This is intended for SGD-style training or online prediction. Note that this could be _really_ inefficient for some kinds of feature generators, and so far is only implemented for SFE.
Constructs a matrix for the test data.
Constructs a matrix for the test data. In general, if this step is dependent on training (because, for instance, a feature set was selected at training time), the FeatureGenerator should save that state internally, and use it to do this computation. Not all implementations need internal state to do this, but some do.
Takes the data, probably does some random walks (or maybe some matrix multiplications, or a few other possibilities), and returns a FeatureMatrix.
Returns a string representation of the features in the feature matrix.
Returns a string representation of the features in the feature matrix. This need only be defined after createTrainingMatrix is called once, and calling removeZeroWeightFeatures may change the output of this function (because the training and test matrices may have different feature spaces; see comments above).
For efficiency in creating the test matrix, we might drop some features if they have zero weight.
For efficiency in creating the test matrix, we might drop some features if they have zero weight. In some FeatureGenerator implementations, computing feature values can be very expensive, so this allows us to save some work. The return value is the updated set of weights, with any desired values removed. Yes, this potentially changes the indices and thus the meaning of the feature matrix. Thus the updated weights can't be used anymore on the training matrix, only on the test matrix.