根据之前的购买历史预测客户行为

数据挖掘 机器学习 推荐系统 训练
2022-03-10 09:05:39

我试图根据客户之前的交易历史来预测客户来到我们办公室时想要什么服务。我有 7 年的交易数据(3000 万笔交易),而且很多客户都是常客。每项服务都是针对每个客户的。

样本数据

[
    {
        "customerId":"1xxxx",
        "txns":[
            {
                "serviceId":"12ds23",
                "date":"2016-08-03T08:43:33Z"
            },
            {
                "serviceId":"1dsd89",
                "date":"2016-09-03T08:43:33Z"
            },
            {
                "serviceId":"1dbbb89",
                "date":"2016-10-03T09:43:33Z"
            }
        ]

    },{
        "customerId":"2xxxx",
        "txns":[
            {
                "serviceId":"dds2dfsd",
                "date":"2016-08-03T08:43:33Z"
            },
            {
                "serviceId":"dsdsdsdf",
                "date":"2016-09-03T08:43:33Z"
            },
            {
                "serviceId":"sdfbb9",
                "date":"2017-10-03T09:43:33Z"
            },
            ...
            ...
        ]

    },
    ...
    ..
    ..
]

有人可以建议在这种情况下哪种机器学习技术或统计方法最好。

我可以想到一个决策树分类/逻辑回归模型,将日期(月、日、星期几)作为预测他想要作为类标签的服务的特征

1个回答

您可以有多种解决方案,从非常简单到更复杂和有益的解决方案。

我建议您从简单的解决方案开始,充分利用大部分好处并根据需要继续。

请注意,尽管该问题可以被视为监督学习问题,但它是一个多标签问题(客户可能对许多服务感兴趣)。因此,决策树或逻辑回归不适合(除非您有少量服务,并且您尝试针对每个服务预测用户是否想要一项服务)。

提供此类推荐的经典方法是“喜欢 X 的人也喜欢 Y”。虽然很简单,但亚马逊 50% 的收入都来自于此。

您应该通过考虑电梯使推荐更加具体 - 哈利波特非常受欢迎并且很多人喜欢它。但是,对于阅读浏览书籍的人来说,这并不是最合适的建议。

您可以采用这种逐项推荐,并通过使用朴素贝叶斯或类似方法进行聚合来使用所有用户历史记录。您可以通过为最近的数据提供更多 8 来处理时间性和日期。

下一步是转向推荐系统你可以在网上找到一些实现。Netflix 挑战赛的获胜者使用了矩阵分解算法,因此这个方向在推荐系统中非常流行。