- bump the Pandas requirements to >= 0.24.0. This should have been done in 0.11.0
- suppress some warnings from autograd.
- Move most models (all but Pareto) to autograd for automatic differentiation of their likelihood. This results in faster (at least 3x) and more successful convergence, plus allows for some really exciting extensions (coming soon).
GammaGammaFitter
,BetaGeoFitter
,ModifiedBetaGeoFitter
andBetaGeoBetaBinomFitter
have three new attributes:confidence_interval_
,variance_matrix_
andstandard_errors_
params_
on fitted models is not longer an OrderedDict, but a Pandas SeriesGammaGammaFitter
can accept aweights
argument now.customer_lifelime_value
inGammaGamma
now accepts a frequency argument.- fixed a bug that was causing
ParetoNBDFitter
to generate data incorrectly.
- performance improvements to
generate_data.py
for large datasets #195 - performance improvements to
summary_data_from_transaction_data
, thanks @MichaelSchreier - Previously,
GammaGammaFitter
would have an infinite mean when itsq
parameter was less than 1. This was possible for some datasets. In 0.10.1, a new argument is added toGammaGammaFitter
to constrain thatq
is greater than 1. This can be done withq_constraint=True
in the call toGammaGammaFitter.fit
. See issue #146. Thanks @vruvora - Stop support of scipy < 1.0.
- Stop support of < Python 3.5.
BetaGeoBetaBinomFitter.fit
has replacedn_custs
with the more appropriately namedweights
(to align with other statisical libraries). By default and if unspecified,weights
is equal to an array of 1s.- The
conditional_
methods onBetaGeoBetaBinomFitter
have been updated to handle exogenously provided recency, frequency and periods. - Performance improvements in
BetaGeoBetaBinomFitter
.fit
takes about 50% less time than previously. BetaGeoFitter
,ParetoNBDFitter
, andModifiedBetaGeoFitter
both have a newweights
argument in theirfit
. This can be used to reduce the size of the data (collapsing subjects with the same recency, frequency, T).
- Added a data generation method,
generate_new_data
toBetaGeoBetaBinomFitter
. @zscore - Fixed a bug in
summary_data_from_transaction_data
that was casting values toint
prematurely. This was solved by including a new paramfreq_multiplier
to be used to scale the resulting durations. See #100 for the original issue. @aprotopopov - Performance and bug fixes in
utils.expected_cumulative_transactions
. @aprotopopov - Fixed a bug in
utils.calculate_alive_path
that was causing a difference in values compared tosummary_from_transaction_data
. @DaniGate
- fixed many of the numpy warnings as the result of fitting
- added optional
initial_params
to all models - Added
conditional_probability_of_n_purchases_up_to_time
toParetoNBDFitter
- Fixed a bug in
expected_cumulative_transactions
andplot_cumulative_transactions
- adding new
save_model
andload_model
functions to all fitters. This will save the model locally as a pickle file. observation_period_end
insummary_data_from_transaction_data
andcalibration_and_holdout_data
now defaults to the max date in the dataset, instead of current time.- improved stability of estimators.
- improve Runtime warnings.
- All fitters are now in a local file. This doesn't change the API however.