Re: #5 - Perhaps you could add that as a method to the InferenceElement to
get the probability-weighted prediction.
https://github.com/numenta/nupic/blob/master/py/nupic/frameworks/opf/opfutils.py#L40


On Sun, Oct 13, 2013 at 10:49 PM, Pedro Tabacof <[email protected]> wrote:

> Hello,
>
> I think this really deserves another thread, so I apologize for the
> inconvenience of many emails. These are the main lessons I learned with my
> first successful NuPIC application (see "Electricity forecast competition
> results" thread for the problem explanation):
>
> 1) I only needed to use 390 data samples for the best result. Discarding
> irrelevant data actually improved my results (since I was trying to predict
> the energy load of a winter month, summer data had no use to me).
>
> 2) The parameters ended up very close to the hotgym example. The only
> thing I recall changing is "pamLength", but everything else stayed the
> same. For me this is very motivating because having to fiddle with
> parameters is the worst part of machine learning (and I couldn't get
> swarming running).
>
> 3) Never do many steps prediction with the same model, use different
> models for it. For 31 different predictions, using just one model would
> take a whole day, while using 31 different models would take only an hour.
>
> 4) Don't mind if the scaling ends up being too coarse. In my case it was
> faster and more precise with a coarser scale since I didn't have much
> training data.
>
> 5) Finally, the most important tip, which is something I can't believe
> hasn't been discussed here: When doing scalar prediction, I found it best
> to use the prediction expectation, not the highest probability. To do this
> is really simple:
>     expectation = 0.0
>     total_probability = 0.0
>     for i in result.inferences['multiStepPredictions'][k_steps]:
>         expectation +=
> float(i)*float(result.inferences['multiStepPredictions'][k_steps][i])
>         total_probability +=
> float(result.inferences['multiStepPredictions'][k_steps][i])
>     expectation = expectation / total_probability
>
> This greatly improved my results and I think this should be standard when
> doing scalar predictions, or at least there should be an option for it.
> From a statistical point of view, this seems like the most logical choice
> for doing prediction of scalar values. If there already is an option for
> this, please pardon my ignorance.
>
> Pedro.
>
> p.s. I have to thank Subutai Ahmed for most of the tips, his expertise was
> invaluable to me.
>
> --
> Pedro Tabacof,
> Unicamp - Eng. de Computação 08.
>
> _______________________________________________
> nupic mailing list
> [email protected]
> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
>
>
_______________________________________________
nupic mailing list
[email protected]
http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org

Reply via email to