python - 优化 Lifetime 的 BG/NBD fitter 的执行
问题描述
我有一个约 166K 客户(行)的数据集,这些数据集采用模型适应所需的新近度、频率和 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 秒。该模型的拟合是运行时间的最大贡献者。
所以,我想这里的一般问题是如何优化开箱即用的装配工?我怀疑这是可能的,但不确定。
我是这个领域的新手,充其量是一个体面的编码器/开发人员。我可以在需要的地方添加更多上下文,但认为上述内容已经足够合适了。欢迎提供建议、指导和有用的评论!谢谢!
解决方案
推荐阅读
- python-3.x - 如何生成从范围中的第一个值开始的列表?
- xcode10beta6 - Xcode10 beta6:参数标签 '(frame:)' 与 UIButton 的任何可用重载都不匹配
- android - 应用未授权使用 Firebase 身份验证,但可在测试手机上正常工作
- wordpress - WooCommerce 订单详细信息页面中的数据库插入不起作用
- angular - Stipe Elements:此元素将被挂载到包含子节点的 DOM 元素
- android - Virtualbox中的Android x86蓝牙
- python - 了解 odeint 结果 - 与分析解决方案不一致
- menu - 在WordPress的内部帖子菜单中突出显示当前项目
- c# - 处理汽车模型验证
- html - CSS 计数器效果