Releases: Quantco/glum
Releases · Quantco/glum
glum 3.1.0
3.1.0 - 2024-11-11
New features:
- New argument
max_inner_iter
for classesGeneralizedLinearRegressor
andGeneralizedLinearRegressorCV
to control the maximum number of iterations of the inner solver in the IRLS-CD algorithm. - New fitted attributes
col_means_
andcol_stds_
for classesGeneralizedLinearRegressor
andGeneralizedLinearRegressorCV
. GeneralizedLinearRegressor
now prints more informative logs when fitting withalpha_search=True
andverbose=True
.
Bug fixes:
- Fixed a bug where
GeneralizedLinearRegressor.fit
would raise adtype
mismatch error if fit withalpha_search=True
. - Use data type (
float64
orfloat32
) dependent precision in solvers.
glum 3.0.2
What's Changed
- Fix bug in Wald test with term names without intercept by @MatthiasSchmidtblaicherQC in #797
- Bump mamba-org/setup-micromamba from 1.8.1 to 1.9.0 by @dependabot in #798
- remove libblas mkl dependency by @MarcAntoineSchmidtQC in #799
- Use ruff as our linter and formatter by @MarcAntoineSchmidtQC in #800
- Pre-commit autoupdate by @quant-ranger in #803
- Combine parsing of initial values by @lbittarello in #805
- Support for build with numpy 2.0 by @MarcAntoineSchmidtQC in #809
- Bump pypa/cibuildwheel from 2.18.1 to 2.19.1 by @dependabot in #808
- Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.9.0 by @dependabot in #807
- Switch to pixi by @stanmart in #802
- Prepare release 3.0.2 by @MarcAntoineSchmidtQC in #812
Full Changelog: 3.0.1...3.0.2
glum 3.0.1
Bug fix
- We now support scikit-learn 1.5.
glum 3.0.0
3.0.0 - 2024-04-27
Breaking changes:
- All arguments to :class:
~glum.GeneralizedLinearRegressorBase
, :class:~glum.GeneralizedLinearRegressor
and :class:~glum.GeneralizedLinearRegressorCV
are now keyword-only. - All arguments to public methods of :class:
~glum.GeneralizedLinearRegressorBase
, :class:~glum.GeneralizedLinearRegressor
or :class:~glum.GeneralizedLinearRegressorCV
exceptX
,y
,sample_weight
andoffset
are now keyword-only. - :class:
~glum.GeneralizedLinearRegressor
's default value foralpha
is now0
, i.e. no regularization. - :class:
~glum.GammaDistribution
, :class:~glum.InverseGaussianDistribution
, :class:~glum.NormalDistribution
and :class:~glum.PoissonDistribution
no longer inherit from :class:~glum.TweedieDistribution
. - The power parameter of :class:
~glum.TweedieLink
has been renamed fromp
topower
, in line with :class:~glum.TweedieDistribution
. - :class:
~glum.TweedieLink
no longer instantiates :class:~glum.IdentityLink
or :class:~glum.LogLink
forpower=0
andpower=1
, respectively. On the other hand, :class:~glum.TweedieLink
is now compatible withpower=0
andpower=1
.
New features:
- Added a formula interface for specifying models.
- Improved feature name handling. Feature names are now created for non-pandas input matrices too. Furthermore, the format of categorical features can be specified by the user.
- Term names are now stored in the model's attributes. This is useful for categorical features, where they refer to the whole variable, not just single levels.
- Added more options for treating missing values in categorical columns. They can either raise a
ValueError
("fail"
), be treated as all-zero indicators ("zero"
) or represented as a new category ("convert"
). meth:GeneralizedLinearRegressor.wald_test
can now perform tests based on a formula string and term names.- :class:
~glum.InverseGaussianDistribution
gains a :meth:~glum.InverseGaussianDistribution.log_likelihood
method.
glum 2.7.0
2.7.0 - 2024-02-19
Bug fix:
- Added cython compiler directive legacy_implicit_noexcept = True to fix performance regression with cython 3.
Other changes:
- Require Python>=3.9 in line with
NEP 29 <https://numpy.org/neps/nep-0029-deprecation_policy.html#support-table>
. - Build and test with Python 3.12 in CI.
- Added line search stopping criterion for tiny loss improvements based on gradient information.
- Added warnings about breaking changes in future versions.
glum 3.0.0a2
glum 2.6.0
2.6.0 - 2023-09-05
New features:
- Added the complementary log-log (
cloglog
) link function. - Added the option to store the covariance matrix after estimating it. In this case, the covariance matrix does not have to be recomputed when calling inference methods.
- Added methods for performing Wald tests based on a restriction matrix, feature names or term names.
- Added a method for creating a coefficient table with confidence intervals and p-values.
Bug fix:
- Fixed
GeneralizedLinearRegressorBase.covariance_matrix
mutating feature names when called with a data frame. See here.
Other changes:
- When computing the covariance matrix, check whether the design matrix is ill-conditioned for all types of input. Furthermore, do it in a more efficient way.
- Pin
tabmat<4.0.0
(the new release will bring breaking changes).
glum 3.0.0a1
What's Changed
- Bump pypa/cibuildwheel from 2.14.1 to 2.15.0 by @dependabot in #680
- Column names à la Tabmat #278 by @MartinStancsicsQC in #678
- Pre-commit autoupdate by @quant-ranger in #685
- Bump mamba-org/setup-micromamba from 1.1.3 to 1.4.3 by @dependabot in #686
- Add methods for performing Wald-tests by @MartinStancsicsQC in #668
- Formula interface by @MartinStancsicsQC in #670
- Formula- and term-based Wald-tests by @MartinStancsicsQC in #689
- Support for missing values in categorical columns by @MartinStancsicsQC in #684
Full Changelog: v3.0.0a0...3.0.0a1
glum 3.0.0a0
3.0.0a0 - 2023-08-17
Main change
- Ensure glum's compatibility with the new major release of tabmat (version 4.0.0) by @MartinStancsicsQC
Note that glum 3 is not compatible with pre-4.0.0 versions of tabmat.
Full Changelog: 2.5.2...v3.0.0a0
glum 2.5.2
2.5.2 - 2023-06-02
Bug fix
- Fixed a bug in
glum.GeneralizedLinearRegressor
when fit on a data set with a constant column andwarm_start=True
. See #645.
Other changes:
- We now pin
llvm-openmp=11
when creating the wheel for macOS in line with scikit-learn. This should prevent segfaults on macOS with Intel architecture. - Fixed a bug in the
glm_benchmarks_analyze
command line tool. See #642. - Remove dev dependency on
dask_ml
.