Hello,
I have been struggling to get reasonable results from the SDR classifier, and recently was able to reproduce what I am seeing in a much smaller example.
I am currently attempting to swarm over some financial data where I am attempting to predict a rolling standard deviation of prices that have traded in a given window.
When I swarm, I end up getting a model that typically has a very small alpha for instance
'clParams': {'alpha': 0.0001,
'regionName': 'SDRClassifierRegion',
'steps': '1',
'verbosity': 0},
When I run this model by itself using code that was adopted from the one hot gym example, I see no error in the prediction. In other words if the rolling standard deviation at t=1 happened to be .524684651819 I would get that exactly as the prediction (to the same precision)!
I have played around alot trying to figure out what I was doing wrong, assuming I must just be looking at the wrong value for the 1 step ahead prediction, but after playing more with the examples, there is something odd going on. If I run the one hot gym example with a model with a very small alpha, the exact same results are produced
Steps to produce this oddity-
- run $NUPIC/examples/opf/clients/hotgym/prediction/one_gym/swarm.py
- edit the generated model config to an alpha of .0001 as show in the config snippet above
- run $NUPIC/examples/opf/clients/hotgym/prediction/one_gym/run.py
- examine rec-center-hourly_out.csv - predictions are 100% exact, oddly the output from step 3 does report error scores.
I am either very confused on how this new classifier works or there is some error that is allowing it to snoop the correct value.
Thanks in advance for any clarity that can be provided.
Phil