Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion gen_imgs.py
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,6 @@ def chicago_tensor():


def expectiles():

"""Generate expectiles visualization."""
X, y = mcycle(return_X_y=True)

Expand Down
4 changes: 2 additions & 2 deletions pygam/links.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ def mu(self, lp, dist):
-------
mu : np.array of length n
"""
elp = np.exp(lp)
elp = np.exp(np.clip(lp, -500, 500))
return dist.levels * elp / (elp + 1)

def gradient(self, mu, dist):
Expand Down Expand Up @@ -178,7 +178,7 @@ def mu(self, lp, dist):
-------
mu : np.array of length n
"""
return np.exp(lp)
return np.exp(np.clip(lp, -500, 500))

def gradient(self, mu, dist):
"""
Expand Down
21 changes: 21 additions & 0 deletions pygam/tests/test_links.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import numpy as np

from pygam.distributions import BinomialDist
from pygam.links import LogitLink, LogLink


def test_log_link_no_overflow():
"""LogLink.mu should not overflow for large linear predictor values."""
link = LogLink()
lp = np.array([-1000.0, 0.0, 1000.0])
result = link.mu(lp, dist=None)
assert np.all(np.isfinite(result)), "LogLink.mu produced inf or nan"


def test_logit_link_no_overflow():
"""LogitLink.mu should not overflow for large linear predictor values."""
link = LogitLink()
dist = BinomialDist()
lp = np.array([-1000.0, 0.0, 1000.0])
result = link.mu(lp, dist)
assert np.all(np.isfinite(result)), "LogitLink.mu produced inf or nan"
Binary file added test_output.txt
Binary file not shown.
Loading