calib_and_holdout_data: AttributeError: у объекта 'int' нет атрибута 'n' - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь запустить модель BG / NBD с использованием библиотеки времен жизни. Весь мой анализ основан на следующем примере, но с моими собственными данными: https://towardsdatascience.com/whats-a-customer-worth-8daf183f8a4f

Каким-то образом я получаю следующую ошибку, и после прочтения более 50 статей, посвященных stackoverflow, не найдя ответа, я бы хотел задать свой вопрос: Что я делаю неправильно? (

Заранее спасибо! :)

Я попытался изменить тип всех столбцов, являющихся частью моего информационного кадра, без каких-либо изменений.

df2 = df

df2.head()

person_id   effective_date  accounting_sales_total
0   219333  2018-08-04  1049.89
1   333219  2018-12-21  4738.97
2   344405  2018-07-16  253.99
3   455599  2017-07-14  2199.96
4   766665  2017-08-15  1245.00
from lifetimes.utils import calibration_and_holdout_data

summary_cal_holdout = calibration_and_holdout_data(df2, 'person_id', 'effective_date',
                                        calibration_period_end='2017-12-31',
                                        observation_period_end='2018-12-31')

print(summary_cal_holdout.head())
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-85-cdcb400098dc> in <module>()
      7 summary_cal_holdout = calibration_and_holdout_data(df2, 'person_id', 'effective_date',
      8                                         calibration_period_end='2017-12-31',
----> 9                                         observation_period_end='2018-12-31')
     10 
     11 print(summary_cal_holdout.head())

/usr/local/envs/py3env/lib/python3.5/site-packages/lifetimes/utils.py in calibration_and_holdout_data(transactions, customer_id_col, datetime_col, calibration_period_end, observation_period_end, freq, datetime_format, monetary_value_col)
    122     combined_data.fillna(0, inplace=True)
    123 
--> 124     delta_time = (to_period(observation_period_end) - to_period(calibration_period_end)).n
    125     combined_data["duration_holdout"] = delta_time
    126 

AttributeError: 'int' object has no attribute 'n'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...