随时间变化的用户行为监督学习

Dav*_*ave 5 statistics machine-learning

我想使用机器学习来识别用户的签名,该用户在一段时间内根据他们的行为转换为网站的订阅者.

假设我的网站有6种不同的功能,可以在订阅之前使用,用户可以随时转换为订阅者.

对于给定的用户,我有统计数据,表示该用户每天与特征1-6的交互的连续范围的强度,因此:

  • D1:f1,f2,f3,f4,f5,f6
  • D2:f1,f2,f3,f4,f5,f6
  • D3:f1,f2,f3,f4,f5,f6
  • D4:f1,f2,f3,f4,f5,f6

让我们说在第5天,用户转换.

什么机器使用算法可以帮助我确定哪些是导致转换的功能使用中最常见的模式?

(我知道这是一个超级基本的分类问题,但我找不到一个使用纵向数据的好例子,其中输入向量按时间顺序排序)


为了进一步解决这个问题,我们假设每个特征都有3个强度,用户可以在这个强度上进行交互(H,M,L).

然后,我们可以将每个用户表示为一系列交互强度状态.所以,对于一个用户:

  • LLLLMM LLMMHH LLHHHH

这意味着在第一天他们只与特征5和6进行了显着的交互,但到第三天他们与特征3到6高度互动.

N-gram风格

我可以将这些状态单词和用户的生命周期作为一个句子.(可能需要在词汇表中添加"转换"字样)

如果我通过n-gram模型运行这些"句子",我可以得到用户可能的未来状态给出他/她过去的几个状态,这有点有趣.但是,我真的想知道导致转换词的最常见的n-gram集合.我想给出预测的单词,而不是输入一个n-gram并得到下一个预测的单词,然后取回10个最常见的n-gram(来自我的数据),这可能会导致这个单词.

AmaçHerdağdelen建议将n-gram识别为实际n,然后计算每个用户有多少n-gram状态.然后与转换数据相关联(我猜这个例子中没有转换字).我担心的是,这种方法实用的n-gram太多了.(如果每个州有729种可能性,我们使用的是三元组,那就是很多可能的三元组!)

或者,我是否可以通过记录导致转换字的n-gram的数据,然后对它们运行某种类型的聚类以查看转换的常见路径是什么?

生存方式

Iterator建议,我理解生存问题的类比,但这里的文献似乎侧重于预测死亡时间,而不是导致死亡的常见事件序列.此外,当查找Cox比例风险模型时,我发现它不会容纳随时间变化的变量(它有助于区分性别和种族等静态属性) - 因此它似乎非常适合于与我的不同的问题.

决策树样式

虽然我无法完全理解如何构建数据,但这似乎很有希望.由于数据不是平坦的,因此树模拟了从一个状态移动到另一个状态的可能性以及何时导致转换?这与我能够找到的决策树数据文献非常不同.

此外,需要明确如何识别导致转换的模式,而模型预测在给定序列之后可能的转换引擎.

Rug*_*man 4

从理论上讲,隐马尔可夫模型可能是解决您的问题的合适方法。您网站上的功能将构成字母表,您可以根据用户最终是否订阅来使用交互序列作为正面或负面实例。我不知道隐藏状态的数量应该是多少,但毕竟为该参数找到合适的值是问题的一部分。

顺便说一句,正面实例很容易识别,但用户到目前为止尚未订阅的事实并不一定意味着他/她不会。您可能会考虑将数据限制为足够老的用户。

我还会考虑将数据转换为固定长度的向量,并应用概念上更简单的模型,这些模型可以让您对正在发生的事情有一些直觉。您可以使用n-gram(长度为 n 的连续交互序列)。

作为示例,假设给定用户的交互序列是“f1,f3,f5”,“f1,f3,f5”将构成3-gram(三元组)。同样,对于相同的用户和相同的交互序列,您将使用“f1,f3”和“f3,f5”作为 2-gram(二元组)。为了将每个用户表示为向量,您需要识别直到实际 n 的所有 n 元语法,并计算用户使用给定 n 元语法的次数。向量中的每一列代表给定用户观察给定 n 元语法的次数。

然后,可能借助一些合适的标准化技术,例如逐点互信息tf-idf,您可以查看 n 元语法和最终结果之间的相关性,以了解正在发生的情况,执行特征选择来找到用户参与的最突出的序列,或者应用最近邻、支持机或朴素贝叶斯等分类方法来构建预测模型。