回归问题
回归问题是具有数值目标列的机器学习问题。下面的示例将向您展示如何以精确的方式构建业务问题,然后聚合一个训练数据集,其中所有特征都是平等的。这为生成预测回归模型提供了良好的基础。
回归示例:客户终身价值
我们首先假设一个基于历史客户的机器学习模型将学习使用影响预测的几个特征来预测客户的终身价值。我们收集包含所有过去和现在客户的历史信息的数据集。每个客户有一行,这些列表示描述客户的特征:客户 ID、性别、年龄、成为客户的日期、邮政编码、购买次数和总货币支出。
我们可以将客户终身价值定义为总货币支出,将数据集输入机器学习算法,并让其学习预测总货币支出。随着未来获得新客户,我们可以使用经过训练的算法来预测他们在客户生命周期内将提供多少货币价值。然而,这种方法存在若干问题:
-
数据集可能包括已经成为客户一天、一个月或一年的人。总货币支出的价值并不反映客户将花费多少,而是反映到目前为止他们花费的总额。
-
年龄为一天的客户账户,可能具有高回报客户的特征。但由于他们昨天刚成为客户,他们只购买了一次,没有花很多钱。通过将他们包括在训练数据集中,我们错误地教导机器学习算法,他们是那种不会带来很多收入的客户。
-
我们可能有一个新客户,他在第一个月里每周订购三次产品,总共购买了 12 次。如果其他人已经是一年的客户,并且每个月购买一次,那么他们可能会花同样的钱。机器学习算法将使这两个客户在客户终身价值方面处于同等地位,而实际上,一个月年龄的客户从长远来看可能更有价值。
为了避免这些陷阱,我们需要准确地定义客户生命周期价值,以及如何为问题准备数据集。实现这一点的一个好方法是将时间作为问题定义的一个因素。
包括时间因素
为了包括时间因素,我们首先将第一年的价值定义为客户作为客户第一年花费的总金额。然后,我们可以使用客户前三个月的行为作为特征来预测他们第一年的总花费。第一年值是包含时间框架的感兴趣度量的精确定义。创建这样一个精确定义的度量的优点是,它将我们训练数据集中的所有示例放在同等的基础上。
请注意,由于我们现在正在查看人们作为客户的第一年花费的总金额,因此我们必须将训练数据集限制为至少一年的客户。我们可以准备这样的数据集:
在这里,每一行代表一个至少一年的客户。这些列包括描述客户成为客户时的特征,以及表示客户在所选时间段内的活动的特征。
该活动通过前三个月的购买数量和前三个月中的货币支出总额来衡量。目标列表示第一年花费的总金额。这是我们将示教机器学习算法进行预测的第一年值。
请注意,我们现在是如何提出一个在时间框架内定义的非常精确的问题的:“根据客户前三个月的行为,预测他们在第一年会带来多少利润。”