Releases: Quantco/glum
Releases · Quantco/glum
glum 3.2.3
3.2.3 - 2026-03-18
Bug fix:
- Fixed incorrect call in
InverseGaussianDistribution.log_likelihood. The previous implementation always returned NaN.
glum 3.2.2
3.2.2 - 2026-03-17
Bug fix:
- Fixed incorrect formula in
glum.CloglogLink.inverse_derivative2. This affected observed information matrix computation and robust/clustered standard errors for models using the complementary log-log link.
glum 3.2.1
3.2.1 - 2026-03-16
Bug fix:
- Fixed an error when predicting at a specific
alphawith categorical features.
Other changes:
- Downgraded log messages in
align_df_categoriesandadd_missing_categoriesfrom INFO to DEBUG, and deduplicated them so they are emitted only once per column per fitted model.
glum 3.2.0
3.2.0 - 2026-03-10
New features:
- Add
solver="closed-form"for Gaussian identity-link models, using an analytical normal-equations solution for ridge/OLS, auto-selecting it undersolver="auto"for unconstrained no-L1 cases, and falling back to least-squares for singular or ill-conditioned systems. - :class:
~glum.GeneralizedLinearRegressorand :class:~glum.GeneralizedLinearRegressorCVnow acceptPolars <https://pola.rs>_ DataFrames as input, in addition to pandas DataFrames and numpy arrays.
Bug fixes:
- Fixed
predict(X, alpha_index=...)andpredict(X, alpha=...)on :class:~glum.GeneralizedLinearRegressorCV, which previously raised an error. The CV estimator now refits on the full data over the entire alpha path for the bestl1_ratio_. - Fixed alpha path computation in :class:
~glum.GeneralizedLinearRegressorCV: the alpha grid is now computed from the properly standardized feature matrix and per-featureP1penalties (matching the base class), and accounts foroffsetwhen present.
Full Changelog: 3.1.3...v3.2.0
glum 3.1.3
3.1.3 - 2025-02-18
Bug fixes:
- Fixed
deviance_path_in :class:~glum.GeneralizedLinearRegressorCVbeing scaled down by a factor ofn_foldsbecause test fold weights were not normalized to sum to 1. - Fixed :class:
~glum.NegativeBinomialDistributionthetasetter rejectingnp.numbertypes, causingdist.theta = dist.thetato raise aTypeError.
Other changes:
- We disabled fast math to avoid invalid results (e.g., when dividing by zero).
- The default
alpha_maxfor the regularization path in the pure ridge case (l1_ratio=0) is now computed from the null model gradient, matching glmnet's behavior. Previously it was hardcoded to 10. - When
min_alpha_ratiois not set andn_samples < n_features, the default is now1e-2instead of1e-6, matching glmnet's convention.
Full Changelog: 3.1.2...3.1.3
glum 3.1.2
3.1.2 - 2025-01-30
Other:
- Linux-aarch64 wheels are now built and uploaded to PyPI.
Full Changelog: 3.1.1...3.1.2
glum 3.1.1
3.1.1 - 2025-01-13
Bug fixes:
- Fixed a bug where
glum.TweedieDistribution._rowwise_gradient_hessianandglum.TweedieDistribution._eta_mu_deviancewould call functions with wrong arguments in thep = 3case. - Fixed
glum.InverseGaussianDistributionnot using the optimized gradient, Hessian and deviance implementations, as well as those derivatives having the wrong sign.
Other changes:
- We now build and test with Python 3.13 in CI.
Full Changelog: 3.1.0...3.1.1
glum 3.1.0
3.1.0 - 2024-11-11
New features:
- New argument
max_inner_iterfor classesGeneralizedLinearRegressorandGeneralizedLinearRegressorCVto control the maximum number of iterations of the inner solver in the IRLS-CD algorithm. - New fitted attributes
col_means_andcol_stds_for classesGeneralizedLinearRegressorandGeneralizedLinearRegressorCV. GeneralizedLinearRegressornow prints more informative logs when fitting withalpha_search=Trueandverbose=True.
Bug fixes:
- Fixed a bug where
GeneralizedLinearRegressor.fitwould raise adtypemismatch error if fit withalpha_search=True. - Use data type (
float64orfloat32) dependent precision in solvers.
glum 3.0.2
What's Changed
- Fix bug in Wald test with term names without intercept by Matthias Schmidtblaicher (@MatthiasSchmidtblaicherQC) in #797
- Bump mamba-org/setup-micromamba from 1.8.1 to 1.9.0 by Dependabot (@dependabot) in #798
- remove libblas mkl dependency by Marc-Antoine Schmidt (@MarcAntoineSchmidtQC) in #799
- Use ruff as our linter and formatter by Marc-Antoine Schmidt (@MarcAntoineSchmidtQC) in #800
- Pre-commit autoupdate by @quant-ranger in #803
- Combine parsing of initial values by Luca Bittarello (@lbittarello) in #805
- Support for build with numpy 2.0 by Marc-Antoine Schmidt (@MarcAntoineSchmidtQC) in #809
- Bump pypa/cibuildwheel from 2.18.1 to 2.19.1 by Dependabot (@dependabot) in #808
- Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.9.0 by Dependabot (@dependabot) in #807
- Switch to pixi by Martin Stancsics (@stanmart) in #802
- Prepare release 3.0.2 by Marc-Antoine Schmidt (@MarcAntoineSchmidtQC) in #812
Full Changelog: 3.0.1...3.0.2
glum 3.0.1
Bug fix
- We now support scikit-learn 1.5.