Skip to content

Fix mean Tweedie deviance for power outside 0, 1 and 2 - #340

Merged
josevalim merged 1 commit into
elixir-nx:mainfrom
RicardoSantos-99:fix-tweedie-deviance
Jul 15, 2026
Merged

Fix mean Tweedie deviance for power outside 0, 1 and 2#340
josevalim merged 1 commit into
elixir-nx:mainfrom
RicardoSantos-99:fix-tweedie-deviance

Conversation

@RicardoSantos-99

Copy link
Copy Markdown
Contributor

I was evaluating a regression model using mean_tweedie_deviance with power 1.5 (compound Poisson-gamma) and the deviance looked way off compared to what sklearn gave for the same predictions. Traced it down to the formula for power outside 0, 1 and 2: it was split across multiple lines with the minus and plus operators at the start of each line, which Elixir parses as separate expressions inside parentheses rather than a continued one, so only the last term was actually being returned. Same issue affected d2_tweedie_score.

Joined it into a single expression and added tests comparing against sklearn for power 1.5, 3 and -1, plus a check that deviance is 0 for perfect predictions.

The deviance formula was split across lines with the minus and plus
operators at the beginning of each line. Inside parentheses Elixir
parses those as separate expressions in a block, so only the last term
was returned. The deviance was wrong for any power other than 0, 1
and 2, and could even be negative. This also affected d2_tweedie_score.

Joins the expression into a single one and adds tests validated
against scikit-learn for power 1.5, 3 and -1.
@josevalim
josevalim merged commit c1269ad into elixir-nx:main Jul 15, 2026
2 checks passed
@josevalim

Copy link
Copy Markdown
Contributor

💚 💙 💜 💛 ❤️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants