预测营销活动的发送时间

数据挖掘 机器学习 预测建模 营销
2022-01-29 16:08:31

根据过去的响应时间戳预测营销活动的最佳个人发送时间的合适模型/算法/策略是什么?

数据:

举个例子

===========================================================
  customer campaign    campaign_time       response_time   
-----------------------------------------------------------
1   100       a     2017-01-01 06:50:01 2017-01-01 08:02:21
2   101       a     2017-01-01 06:50:01 2017-01-01 16:45:31
3   101       a     2017-01-01 06:50:01 2017-01-02 07:20:00
4   100       b     2017-01-07 06:30:21 2017-01-08 08:15:21
5   101       b     2017-01-07 06:30:21 2017-01-07 17:00:12
6   100       c     2017-01-14 06:43:55 2017-01-14 07:59:44
7   101       d     2017-01-21 14:02:01 2017-01-21 16:50:01
-----------------------------------------------------------
  • 两个客户 100&101,
  • 四个过去的活动广告。
  • 每个活动都有不同的发送时间,
  • 客户和活动的多个、一个或没有响应时间(例如购买产品)

目标:

假如说

  1. campaign_time可能因100101个性化的调度时间)而异,并且
  2. 过去的响应时间是客户最容易接受活动的指标

我想根据过去的 s 预测每个客户的最佳下一个campaign_time( ) ,以便每个活动的受访者数量最大化。2017-01-28 ??:??:??response_time

任何人有任何类似的经验或任何想法从哪里开始?我很乐意听到一些想法。

为简化起见,我认为第一个 response_time 是最有价值的(=> 应该被预测)并且我也会从工作日中抽象出来(=> 它是关于预测时间 0:00-23:59,由?上面标记) ; 但是,最好有一个连续的预测而不是离散的预测(就像这里建议的那样)。

3个回答

我可能会建议更改您的理论设置:

听起来您正试图最大化方程 f(t),其中 t 是发货时间,f(t) 是风险调整后的购买机会(您注意到它可以是 0-many)。

在这种情况下,最好使用这样的设置:

===========================================================
  customer campaign    campaign_time       total_responses_within_1week   
-----------------------------------------------------------
1   100       a     2017-01-01 06:50:01       0
2   101       a     2017-01-01 06:50:01       3
3   101       a     2017-01-01 06:50:01       2
4   100       b     2017-01-07 06:30:21       1
5   101       b     2017-01-07 06:30:21       1
6   100       c     2017-01-14 06:43:55       1
7   101       d     2017-01-21 14:02:01       1
-----------------------------------------------------------

除非您有特定的内部数据或期刊研究直接表明响应速度与购买的可能性/数量之间的关系,否则我可能会避免包含它。

现在,如果您需要估计劳动力或库存等问题的响应时间,您可以使用概率模型,但我会避免在那里提出具体建议,因为我的相对优势在于回归模型。您希望该函数在给定时间段内输出一条概率曲线,然后将所有这些曲线相加(例如,估计在星期三早上,您将有 80-109 个订单,因此需要 5 个客户服务代表)。

但是,如果您的目标是纯粹的响应频率(在相关时间内),则不需要对响应时间进行建模。

由于场景和数据存在重要问题,因此我将分享一些想法以及对某些问题的假设答案,而不是完整的解决方案。

首先,在样本数据中,尚不清楚如何对用户未响应的情况进行建模和/或是否已将每个活动发送给所有用户(实际情况并非如此,因为用户群会随着时间而变化) . 但是我们可以放心地假设已经给出了这些信息(为了简单起见,所有活动都已发送给所有用户,或者我们现在收到了哪些用户与活动一起接收)。

然后可以很容易地想象,一些活动可能更适合在一天的早些时候发送,例如 B2B 服务 - 在工作时间,有些 - 而在晚上,例如旅行最后一分钟优惠。这会严重影响许多用户的响应率,而且我们没有关于活动本身的任何信息 - 没有尝试对活动内容进行建模的功能以及它对响应能力的影响。如果我们现在总是在不同的时间向不同的用户发送相同类型的活动,这可能会在一天中的不同时间产生全球(受众范围)响应率趋势。

影响全球响应能力的第二个方面是活动的质量——它如何吸引用户。这可以部分推断为观察用户在一天中的同一时间收到各种活动时的响应能力。

这就提出了一个问题,即每个活动分别在一天中的时间分布以及它们之间的比较 - 是否有足够的数据来尝试推断该信息。

假设对于初学者来说,这些是关于质量的类似活动并且它们与一天中的时间无关,我们可以分别关注每个用户。

如果您查看一天中响应数量的分布(例如,按给定时间点发送的活动数量的平均值),您可以在那里发现最大值,这是最好的一次性候选人下一个广告系列。然而,这种方法有以下注意事项。

  • 从长远来看,它将为用户创造一个“时间点泡沫”
  • 试图总是在这个时间点送他。这不会反映用户偏好的变化。

在这里,您可以应用移动平均线,例如在固定时间窗口(如“过去 3 个月”)和/或不时尝试其他数据点以及可能的其他技术,以获得更多样化和面向未来的策略。- 最大时间点可能是一种异常行为,而有更多证据表明响应数量较少,但在其他时间范围内得到更多时间点的支持。

为了考虑活动的各种质量,可以通过比较在同一时间点发送了多个活动的用户的响应性来创建它们的评级。然后通过对给定用户的响应数量分布的活动的反向评级来权衡响应数量。

数据:

举个例子

===========================================================
  customer campaign    campaign_time       response_time   
-----------------------------------------------------------
1   100       a     2017-01-01 06:50:01 2017-01-01 08:02:21
2   101       a     2017-01-01 06:50:01 2017-01-01 16:45:31
3   101       a     2017-01-01 06:50:01 2017-01-02 07:20:00
4   100       b     2017-01-07 06:30:21 2017-01-08 08:15:21
5   101       b     2017-01-07 06:30:21 2017-01-07 17:00:12
6   100       c     2017-01-14 06:43:55 2017-01-14 07:59:44
7   101       d     2017-01-21 14:02:01 2017-01-21 16:50:01
-----------------------------------------------------------

正如其他人已经回答的那样,我想补充几点,

  • 那么特征工程呢?我们可以向给定的数据集添加许多其他特征。

    • 周差异。
    • 日、月等
    • 时差也是如此。

然后按数据集的视图创建分组

  • 之后,我们可以使用RF来帮助查看不同属性/列等的特征重要性。
  • 之后,您还可以使用Dendograms(层次聚类)来查看哪些列是不相关的。
  • 并且该过程继续使用不同的模型,进行 EDA 等。