Description
Hi David @ctrl-z-9000-times
I am looking at your Predictor now.
If I understood you well, this function will be used for prediction any data, based on SDR-pattern.
I really do not understand what does "recordNum" mean exactly for infer and learn?
Predictions infer(UInt recordNum, const SDR &pattern);
void learn(UInt recordNum, const SDR &pattern, const std::vector<UInt> &bucketIdxList);
if I have 1D data like a vector v = {1.1, 5, 3, 9 ...}.
Is it a data index, or frame index? e.g. SDR for v[0] = 1.1, recordNum = 0?
Secondly:
If I use it for predict a 1D data, I think bucket index is not enough for this purpose, because Inference provides only the bucket index, not the real value.
To bring the full performance of Predictor like decode(), by learning we have to input a map of bucket and real value like
std::map<UInt, Real32> data; // 1st for bucket, 2nd for value
Do you think that we should do it in Predictor-class or user have to map them individually?
Thanks
EDIT:
The problem seems to be in insuffucient precision of Real, and Real64 should be used for PDF in SDRClassifier/Predictor. No test to replicate, though. #646 (comment)