Replies: 15 comments
-
You’d want to use h_scaled to apply to the original data, not h_source.
|
Beta Was this translation helpful? Give feedback.
-
Hello @christianbrodbeck . Thanks a lot for your response. I made the change you suggested, but still cannot get the assertion to be true. What else could I be doing wrong?
|
Beta Was this translation helpful? Give feedback.
-
The residual (as all fit metrics) is calculated after normalization, so you'd have to take that normalization into account. |
Beta Was this translation helpful? Give feedback.
-
Hello @christianbrodbeck , thanks for the reply. What should be normalized and at what stage? Along which dimensions/features? Thanks for clarifying |
Beta Was this translation helpful? Give feedback.
-
See
|
Beta Was this translation helpful? Give feedback.
-
Thank you @christianbrodbeck . I think now I better understand what is going on. I assume that the whole point of getting both
|
Beta Was this translation helpful? Give feedback.
-
Also, given what we have discussed so far, I would have expected these to give the same result, but they don't.
I feel like there's something very fundamental that I'm missing. |
Beta Was this translation helpful? Give feedback.
-
Hi @iranroman, Predictionaccording to my understanding, the prediction should be:
and that matches with hand calculated prediction:
ResidualHowever, according to documentation, the residual should be:
but this does not match with the |
Beta Was this translation helpful? Give feedback.
-
Hello, thanks you @proloyd for your response. This line seems rather complicated to me:
Let me try to break this down:
This expression convolves the unscaled TRF filters with the standardized envelope (?). I'm assuming here that This is then multiplied by With all of this said, I would have expected a way to say something along the lines of P.D: I think in the second line of code you meant |
Beta Was this translation helpful? Give feedback.
-
@christianbrodbeck , could you please provide me with an example for how to use I'm trying to incorporate your boosting code as evaluation metric in the optimization routine of a model that predicts speech envelopes. Cheers! |
Beta Was this translation helpful? Give feedback.
-
would it be using
? That's what would make sense to me, but without being able to replicate the residuals, I cannot corroborate the operations I'm trying to do "by hand". Thanks! |
Beta Was this translation helpful? Give feedback.
-
What you want is: This aligns with the fact that |
Beta Was this translation helpful? Give feedback.
-
How big is your difference? Could it be due to numerical precision? For example, you're calculating it at a different scale than the actual code, and the SS is calculated using For reference, the actual calculation is here: Eelbrain/eelbrain/_trf/_boosting.py Line 761 in e81c439 The L2 evaluator is here: Eelbrain/eelbrain/_trf/_fit_metrics.py Line 74 in e81c439 |
Beta Was this translation helpful? Give feedback.
-
I tried |
Beta Was this translation helpful? Give feedback.
-
Hard to say from this, boosting is pretty conservative. Notice that the visible features of the response are not in the prediction, so they are probably noise not signal. |
Beta Was this translation helpful? Give feedback.
-
Hello eelbrain,
I've been trying to understand the boosting objects and operations. A sanity check I want to achieve is calculating the residual by hand by comparing the output of
convolve
and the "target" signal that boosting was optimized to model. However, I have been unsuccessful. Below is a minimal example to replicate my logic (based on one of the repo's examples).Maybe there's something fundamental I'm not understanding. Thanks!
Beta Was this translation helpful? Give feedback.
All reactions