#python #python-3.x #pandas #lifetimes-python
Вопрос:
Прочитайте документ и конкретного монтажника на всю жизнь.
У меня есть набор данных из ~166 тыс. клиентов (строк) в формате недавности, частоты и T, необходимых для соответствия модели. Я использую следующий код, аналогичный тому, что описано в разделе быстрого запуска:
# similar API to scikit-learn and lifelines.
bgf = BetaGeoFitter(penalizer_coef=0.0)
bgf.fit(data['frequency'], data['recency'], data['T'])
print(bgf)
# bgf fit time: 2.42 seconds
# total runtime: 2.56 seconds
Моя цель здесь-сократить время подгонки. Для контекста я запускаю моделирование, в котором эта модель подходит несколько раз. Несколько раз здесь, что означает, если мы сможем, ~ 720 * 10 000. Это уйма времени. Даже на консервативных уровнях (~ 180 * 100) это все равно займет полдня.
У меня есть ~3 других функции, которые выполняются после подгонки модели. Удалось векторизовать один, и теперь все они работают под/около 0,04 секунды. Соответствие этой модели является крупнейшим фактором, влияющим на время выполнения.
Итак, я полагаю, что общий вопрос здесь заключается в том, как оптимизировать монтажника из коробки? Я подозреваю, что это возможно, но не уверен.
Я новичок в этой области и в лучшем случае являюсь приличным программистом/разработчиком. Я могу добавить больше контекста там, где это необходимо, но подумал, что вышесказанное достаточно уместно. Советы, указания и полезные комментарии приветствуются! Спасибо!