Model_params: BoostingStrength, Radius, custiomDays and _classifierInput

Hello :blush:,

I am working on a prediction at the moment and I have some questions about the parameters and couldn’t find any explanation so far. Soo some help would be really appreciated.

1. BoostingStrength:
a) What would a BoostingStrength of 0.5 mean? Would this just weaken ALL columns?
b) Does a BoostingStrength = 1 have any effect on the system? Does this just prohibit the overacttive columns from learning without strengthen the weaker ones?
c) How can I decide about the value of BoostingStrength? under which conditions does boosting make sense? How can I see this in my data?
d) Does the system automatically calculate the individual BoostingStrength for each column? and do all the columns get a boostfactor automatically? (in HTM School video it looks like this)

2. Radius:
So far I just worked with the radius for datetime encoders.
a) How can I know which radius is a good choice? Do I have to check my data and see for shared spikes? What I mean is: On one day I have a spike around 10 am. The next day it is at 10:45. The day after around 10:15. So I would choose a radius of 1 hour (so rad = 4 in timeOfDay Encoder).
What else do I have to consider?
Espacially for the dayOfWeek Encoder in am confused how to decide… is there any common choice which normally works?

3. costumDays encoder:
a) how does the encoder for custom days work?
Say i want to have a w=21 and my days are [“Saturdays”, “Sundays”]. What is the n for this particular encoder?
Is it 42: I have 21 bits 0 and 21 bits 1 for Saturdays and Sundays. (the opposite for Monday-Friday).
Or ist it 63: I would have 42 bits 0 (Monday-Friday and Sunday) and 21 bits 1 for Saturdays.

b) If I just have 42 bits in total for this encoder: Is it then the same as the weekend encoder?
And what is a good solution then to seperate between Saturday and Sunday very strictly?

4. classifierInput:
This is under encoders:
a) Where can I find out more about this? I am not sure what will be encoded here…

Thank you all very much in advance for your help. :blossom::bug:


No, any value greater than 0 will strengthen minicolumn that are not winning to represent more stuff. I would experiment with something between 1.0 and 2.0.
boostStrength is used to attempt to reach a target density, as shown here:

Each minicolumn has its own boostFactor (see code above).

For your other questions about encoders, I again recommend running [8] in the NuPIC Walkthrough Jupyter Notebook. The best way to understand these parameters is to try them out and see what kind of encodings they create.

I don’t think you need to set this anywhere, do you?

1 Like

Thanks a lot for the answer :blush:
I’ll check that notebook today… thanks a lot.

Well it was returned by my swarming…
I do have something like this:

    '_classifierInput': { 'classifierOnly': True,
                          'clipInput': True,
                          'fieldname': 'consumption',
                          'maxval': 324.167541908,
                          'minval': 37.0,
                          'n': 90,
                          'name': '_classifierInput',
                          'type': 'ScalarEncoder',
                           'w': 21},

Sooo what is this? Is it to translate the output into scalar values?
And if so… why does it not have many n and w as the SDR for the input.
(For consumption infput I have n = 334 and w= 21)

Thanks very much.

1 Like

This part was meant to be abstracted away by the OPF. To decode a value from a population of cells back into the scalar range of some input space, a classifier is used. These are its parameters, which depend on the size of the network that is used and the range of the input. This is what decodes cell populations representing predictions back into scalar values. I don’t think you will need to change this.

1 Like