Home | News | Documentation | Download

Boundary for target in regression not working

Dear experts,
I’m using a MLP multi-target regression.
I’ve set a target variable with min and max values with:

dataloader->AddTarget(myvar,"","",xmin,xmax)

However when plotting TestTree->Draw(MLP.myvar) there are values beyond the boundaries.
Best, Marianna.

I guess @moneta can help you.

Hi,
The min and max values are not used as a contraint to the target. I think you can use as target a transformed variable like arcsin to the target that will avoid that the prediction will go out of the boundary.

Lorenzo

HI, I’ve tried to use as target cond := 80 + 50*sin(f) to bound f between 30 and 130. In the TestTree cond is correctly bounded, but not the MLP.cond which shows (attached) cond.pdf (14.2 KB) MLPcond.pdf (13.8 KB) the distribution of f.
Best, Marianna.

Hi,

It is not clear to me what the plots are exactly. cond.pdf is the input target transformed as
80+50*sin(f) ?
And MLPcond.pdf is the predicted target by MLP ?

Lorenzo

Hi Lorenzo,
yes.
Marianna.

OK, but then I don’t understand why you have such distribution for the target cond peaked at 30 and 130.
And what is the problem with the predicted variable ? That is too far off ?

Hi, the input variable is expected to peak at 30 and 130, because of the sin function peaking at -+1. My question is why the predicted variable is not bounded between 30 and 130, as the input variable.
Best, Marianna.

Sorry for the late reply. There is no constraints in the algorithm that make the prediction to be bound in a given region, so it is expected that the prediction can be outside the range.