Bug fix:
- The :meth:`score` method of :class:`~glum.GeneralizedLinearRegressor` and :class:`~glum.GeneralizedLinearRegressorCV` now accepts offsets.
Other:
- The CI now runs daily unit tests against the nightly builds of numpy, pandas and scikit-learn.
oldest-supported-numpy
is used for build.
New feature:
- Added :meth:`aic`, :meth:`aicc` and :meth:`bic` attributes to the :class:`~glum.GeneralizedLinearRegressor`. These attributes provide the information criteria based on the training data and the effective degrees of freedom of the maximum likelihood estimate for the model's parameters.
Other:
- We are now specifying the run time dependencies in
setup.py
, so that missing dependencies are automatically installed from PyPI when installingglum
via pip.
Bug fix:
- Fixed the sign of the log likelihood of the Gaussian distribution (not used for fitting coefficients).
- Fixed the wide benchmarks which had duplicated columns (categorical and numerical).
Other:
- The CI now builds the wheels and upload to pypi with every new release.
- Renamed functions checking for qc.matrix compliance to refer to tabmat.
Bug fix:
- Fixed pyproject.toml. We now support installing through pip and pep517.
Breaking changes:
- Renamed the package to
glum
!! Hurray! Celebration. - :class:`~glum.GeneralizedLinearRegressor` and :class:`~glum.GeneralizedLinearRegressorCV` lose the
fit_dispersion
parameter. Please use the :meth:`dispersion` method of the appropriate family instance instead. - All functions now use
sample_weight
as a keyword instead ofweights
, in line with scikit-learn. - All functions now use
dispersion
as a keyword instead ofphi
. - Several methods :class:`~glum.GeneralizedLinearRegressor` and :class:`~glum.GeneralizedLinearRegressorCV` that should have been private have had an underscore prefixed on their names: :meth:`tear_down_from_fit`, :meth:`_set_up_for_fit`, :meth:`_set_up_and_check_fit_args`, :meth:`_get_start_coef`, :meth:`_solve` and :meth:`_solve_regularization_path`.
- :meth:`glum.GeneralizedLinearRegressor.report_diagnostics` and :meth:`glum.GeneralizedLinearRegressor.get_formatted_diagnostics` are now public.
New features:
- P1 and P2 now accepts 1d array with the same number of elements as the unexpanded design matrix. In this case, the penalty associated with a categorical feature will be expanded to as many elements as there are levels, all with the same value.
- :class:`ExponentialDispersionModel` gains a :meth:`dispersion` method.
- :class:`BinomialDistribution` and :class:`TweedieDistribution` gain a :meth:`log_likelihood` method.
- The :meth:`fit` method of :class:`~glum.GeneralizedLinearRegressor` and :class:`~glum.GeneralizedLinearRegressorCV` now saves the column types of pandas data frames.
- :class:`~glum.GeneralizedLinearRegressor` and :class:`~glum.GeneralizedLinearRegressorCV` gain two properties:
family_instance
andlink_instance
. - :meth:`~glum.GeneralizedLinearRegressor.std_errors` and :meth:`~glum.GeneralizedLinearRegressor.covariance_matrix` have been added and support non-robust, robust (HC-1), and clustered covariance matrices.
- :class:`~glum.GeneralizedLinearRegressor` and :class:`~glum.GeneralizedLinearRegressorCV` now accept
family='gaussian'
as an alternative tofamily='normal'
.
Bug fix:
- The :meth:`score` method of :class:`~glum.GeneralizedLinearRegressor` and :class:`~glum.GeneralizedLinearRegressorCV` now accepts data frames.
- Upgraded the code to use tabmat 3.0.0.
Other:
- A major overhaul of the documentation. Everything is better!
- The methods of the link classes will now return scalars when given scalar inputs. Under certain circumstances, they'd return zero-dimensional arrays.
- There is a new benchmark available
glm_benchmarks_run
based on the Boston housing dataset. See here. glm_benchmarks_analyze
now includesoffset
in the index. See here.glmnet_python
was removed from the benchmarks suite.- The innermost coordinate descent was optimized. This speeds up coordinate descent dominated problems like LASSO by about 1.5-2x. See here.
Bug fix:
- Have the :meth:`linear_predictor` and :meth:`predict` methods of :class:`~glum.GeneralizedLinearRegressor` and :class:`~glum.GeneralizedLinearRegressorCV`
honor the offset when
alpha
isNone
.
New features:
- The :meth:`linear_predictor` and :meth:`predict` methods of :class:`~glum.GeneralizedLinearRegressor` and :class:`~glum.GeneralizedLinearRegressorCV`
gain an
alpha
parameter (in complement toalpha_index
). Moreover, they are now able to predict for multiple penalties.
Other:
- Methods of :class:`~glum._link.Link` now consistently return NumPy arrays, whereas they used to preserve pandas series in special cases.
- Don't list
sparse_dot_mkl
as a runtime requirement from the conda recipe. - The minimal
numpy
pin should be dependent on thenumpy
version inhost
and not fixed to1.16
.
Bug fix:
copy_X = False
will now raise a value error whenX
has dtypeint32
orint64
. Previously, it would only raise for dtypeint64
.
Tutorials and documentation improvements:
- Adding tutorials to the documentation.
- Additional documentation improvements.
Bug fix:
- Verbose progress bar now working again.
Other:
- Small improvement in documentation for the
alpha_index
argument to :meth:`~glum.GeneralizedLinearRegressor.predict`. - Pinned pre-commit hooks versions.
We now have Windows builds!
Deprecations:
- Fusing the
alpha
andalphas
arguments for :class:`~glum.GeneralizedLinearRegressor`.alpha
now also accepts array like inputs.alphas
is now deprecated but can still be used for backward compatibility. Thealphas
argument will be removed with the next major version.
Bug fix:
- We removed entry points to functions in
glum_benchmarks
from the conda package.
Bug fix:
- :func:`glum._distribution.unit_variance_derivative` is evaluating a proper numexpr expression again (regression in 1.3.0).
New features:
- We added a new solver based on
scipy.optimize.minimize(method='trust-constr')
. - We added support for linear inequality constraints of type
A_ineq.dot(coef_) <= b_ineq
.
We removed glum_benchmarks
from the conda package.
Maintenance release to get a fresh build for OSX.
New feature:
- Direct support for pandas categorical types in
fit
andpredict
. These will be converted into a :class:`CategoricalMatrix`.
This is a maintenance release to be compatible with tabmat>=1.0.0
.
Other:
- Renamed
alpha_level
attribute of :class:`~glum.GeneralizedLinearRegressor` and :class:`~glum.GeneralizedLinearRegressorCV` toalpha_index
. - Clarified behavior of
scale_predictors
.
Other:
- Pin
tabmat<1.0.0
as we are expecting a breaking change with version 1.0.0.
New features:
- Add Tweedie Link.
- Allow infinite bounds.
Bug fixes:
- Unstandardize regularization path.
- No copying in predict.
Other:
- Various memory and performance improvements.
- Update pre-commit hooks.
See git history.
See git history.
See git history.
See git history.
See git history.
See git history.
See git history.
See git history.
See git history.
See git history.
See git history.