【发布时间】:2011-08-09 00:37:26
【问题描述】:
我想使用机器学习来识别转换为网站订阅者的用户的签名,因为他们在一段时间内的行为。
假设我的网站有 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-grams(从我的数据中),这可能会导致这个词。
Amaç Herdağdelen 建议将 n-gram 识别为实际的 n,然后计算每个用户拥有多少 n-gram 状态。然后与转换数据相关(我猜这个例子中没有转换词)。我担心的是会有太多的 n-gram 来使这种方法实用。 (如果每个状态有 729 种可能性,而我们使用的是三元组,那就有很多可能的三元组!)
或者,我是否可以通过记录导致转换词的 n-gram 的数据,然后对它们运行某种类型的聚类以查看转换的常见路径是什么?
生存风格
Iterator 建议,我理解生存问题的类比,但这里的文献似乎侧重于预测死亡时间,而不是导致死亡的常见事件序列。此外,在查找 Cox Proportional Hazard 模型时,我发现它不能容纳随时间变化的变量(它有利于区分性别和种族等静态属性) - 所以它似乎非常适合与我的问题不同的问题.
决策树样式
这似乎很有希望,尽管我无法完全理解如何构建数据。由于数据不是平坦的,树建模是否有可能从一种状态移动到另一种状态以及何时导致转换?这与我能够找到的决策树数据文献非常不同。
此外,需要明确如何识别导致转化的模式,而不是模型预测给定序列后可能发生的转化。
【问题讨论】:
-
注:添加了统计标签。这是一个分类问题,但更类似于生存分析问题。不过,我没有将其标记为生存分析,因为这可能会吓跑大部分 SO 人群。我还建议发布到 stats.SE 网站(交叉验证)。在 SO 上,可能会得到算法答案,在 stats.SE 上,您可能会得到更倾向于统计的答案。
-
是否应该将句子“...interaction with features 1-5 on daily based...”重写为“1-5”替换为“1-6”,符合句子之前和之后的表?
-
N-gram 是一系列状态变化,但本质上是完全连续的。决策树能够进行状态更改,但不受一维嵌入的限制(如字符或单词)。数学需要一些时间来解释,但决策树总是优于将事物编码为一系列状态,因为它包含相同的模型空间等等。
-
您的功能似乎每天都没有变化。
标签: statistics machine-learning