使用什么方法从数据中找到最佳客户?

数据挖掘 Python 计分
2022-02-19 03:15:24

我正在从事这个项目,其目标是从现有客户数据集中找到某些好的潜在客户/客户。我尝试了 RFM 方法进行评分,但没有关于金钱或任何数量的数据。

数据集有:

  1. 客户ID
    1. 日期(会议结束的日期)
    2. next_action_date(如果当天有 next_meeting_scheduled)
    3. 状态(完成、错过、取消)

因此,仅基于会议,我需要为潜在客户或客户评分。所以我从正常的控制流语句开始,比如,

  1. 如果会议被安排和错过 - 5 分
  2. 如果会议已安排并完成 - 10 分
  3. 如果会议已安排并取消 -2 分。

基本上,我需要通过这些案例来给客户打分。那么我应该如何为此编写python代码,我的意思是这将是什么方法。我可以从客户的 api 获取数据。我的想法是创建功能,例如,

  1. 自上次访问以来的天数
  2. 没有会议成功完成并且更多并将所有这些添加到其他表中。我的问题是我必须为此编写哪种代码?如果有人可以,请用简单的语言解释。我是新来的。
1个回答

你的直觉很好:一般来说,你需要你的数据包含所有可能有助于找到答案的迹象(特征)。

您对创建这个“其他表”的想法也是正确的:您需要它的原因是因为对于这个问题,您需要每个实例对应一个客户。您的原始数据不是按客户组织的,而是按会议组织的。因此,使用以下客户的功能来组织您的数据是有意义的:

days_since_last_visit   number_meeting_scheduled   number_meetings_attended   ...
15                      4                          2
189                     3                          1
24                      2                          2
...

一般来说,不建议您自己分配分数,因为您可能不知道最佳值是多少。例如,当客户安排 10 次会议并参加 3 次或安排 4 次会议并参加 2 次时,他们会更好吗?通常最好将您拥有的所有原始值提供给 ML 算法,并让它计算出使用它的最佳方式。

需要定义的重要一点是:究竟什么是好客户?如果您认为您的评分确实准确地定义了一个好的客户,您可以计算分数并对客户进行排名,那么您就完成了:这是一个启发式,因为您直接根据您对问题的了解来计算答案。

现在假设您不太确定并想要使用 ML:

  • 如果您可以有一个带有标签的样本,表明客户是否“好”,那么您就有一个监督分类问题:目标将是训练一个能够根据客户预测类别(类别)的模型特征。
  • 如果您有一个样本,其数值表明客户“有多好”,那么您就有监督回归问题。同样,目标是训练一个模型,该模型可以根据特征预测任何客户的价值。

对于上述两种情况,我建议您从简单的方法开始,例如决策树或 SVM(两者都可以进行分类或回归)。前者的优点是您可以手动观察树并了解分类器的工作原理。

  • 如果您没有任何标记数据,那么您唯一的选择是无监督学习,这通常意味着某种形式的聚类:在这种情况下,没有训练阶段,算法仅提供特征,并尝试将实例组合在一起它们彼此靠近。例如,标准方法是 K-means。请注意,在这种情况下,您不确定是否会获得您期望的组。