代码之家  ›  专栏  ›  技术社区  ›  BerggreenDK

检测和存储路径组合以便以后分析的最佳方法

  •  0
  • BerggreenDK  · 技术社区  · 14 年前

    我正在寻找有关如何存储用户路径模式的想法/示例-目的是分析他们的行为,并在我们能够以某种方式检测到他们时优化“最常用的路径”。

    他们在做什么之后做什么动作,这样我们以后可以检查某些动作是否一遍又一遍地完成——因此开发一个快捷方式或将一些动作组合成一个组合的多动作。

    我的第一个猜测是某种“简单日志”,可能以某种SQL方式存储,在那里我们可以将每个操作作为索引,然后只记录所有内容。

    问题是,路径/操作可能会动态更改——即使是在日志记录的时候——所以在以后查找模式时,我们也需要考虑到这一事实。

    你会先记录所有“重要时刻”,然后在一段时间后发布每一个细节,还是你对其他战术有很好的经验?

    我担心这会占用空间,这会占用大量时间,同时每天记录1000个用户,持续一个月或更长时间。

    希望这是有意义的,我很好奇是否有人可以提供示例代码、伪代码或者链接到有用的东西。

    我们的工具将是C、SQL数据库、XML和.NET 3.5-如果需要,客户机也可以获得.NET 4.0。

    我们期望的模式示例

    ...
    User #1001: A-B-A-A-A-B-C-E-F-G-H-A-A-A-C-B-A
    User #1002: B-A-A-B-C-E-F
    User #1003: F-B-B-A-E-C-A-A-A   
    User #1002: C-E-F
    ...
    

    等等。没有真正的方法来知道他们下一步要做什么,也没有真正的方法知道他们会用多少,多久做一次。

    第二个目标,如果可能的话,如果我们以后添加一个新的“行动”,称为G(只是举例说明,将有数百个行动),我们如何检测这些新的行为对以前的模式的影响。

    为了更好地解释这一点,我认为这里有一些方法可以检测“模式中的模式”,有点像压缩是如何工作的,所以“重复模式”是斑点状的。我们不知道这些模式可能会持续多久,也不知道它们会多久出现一次。我们如何将其分解为“小块”—您认为最好的方法是什么?

    2 回复  |  直到 14 年前
        1
  •  1
  •   theninjagreg    14 年前

    我不确定您所说的路径是什么意思,但是,如果您给路径中的每个操作一个唯一的符号,您可以将问题减少到最长的公共子字符串或子序列。

    或者有一个指向该操作发生次数的路径图。每次发生某条路径时,都要增加该路径的计数。然后排序找到最常见的。

        2
  •  0
  •   BerggreenDK    14 年前

    到目前为止的伪想法/实现

    1. 将Ever用户的操作记录到一个列表/一系列操作中,批量类型(textfiles/sql-什么时候,只存储整个操作以便后期处理)

    2. 开始计算每一个“1个动作”、“2个动作”、“3个动作”,直到达到一定数量(比如30个级别)

    3. 通过给一些行为(可能是产生最终结果的行为)赋予进口商的价值,对所有这些行为进行分类。

    一个有用的结果也许?

    如果我们计算所有的[A]、[A-A]、[A-B]、[A-C]、[A-A-A]、[A-A-B]等,它将列出一个长而细的列表,其中经常在行中使用操作,并且这是正确的方向,因为如果这些结果中的一些太高,我们可能需要一个较短的路径。问题是,哪些操作太少而无法优化,以及需要搜索的最长操作列表?我想我们需要先做这个计数,然后检查数字。

    问题是,这将是我们正在开发的分析工具的一部分,在实现之前我们没有数据,所以在实际完成之前我们不知道要寻找什么。隐马尔可夫模型。。。想知道这个问题是否真的有答案。