我正在寻找关于如何从用户存储路径模式的想法/示例 - 目的是分析他们的行为并优化“最常用的路径”,当我们以某种方式检测它们时。
EG。他们之后采取了哪些行动,以便我们以后可以检查某些行动是否一遍又一遍地进行 - 从而开发一条捷径或将一些行动组合成一个综合的多重行动。
我的第一个猜测是某种“简单日志”,可能以某种SQL方式存储,我们可以将每个操作保存为索引,然后记录所有内容。
问题是路径/动作可能会动态改变 - 即使在记录时 - 所以我们也需要能够在以后查找模式时处理这个事实。
您是否会首先记录“bigtime”,然后在一段时间后对每一段细节进行POST处理,或者您是否对其他策略有很好的经验?
我担心这会占用空间,大量时间,每天记录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的新“动作”(仅用于说明,将会有数百个动作),我们如何检测这些新行为对先前模式的影响,这是次要目标。
为了更好地解释它,我的想法是在某种程度上检测“模式中的模式”,有点像压缩如何工作,所以“重复模式”是spottet。我们不知道这些模式可能有多长,也不知道它们可能会出现多长时间。我们如何将其分解为“小点点” - 你认为最好的方法是什么?
答案 0 :(得分:1)
我不确定你的路径是什么意思,但是,如果你在路径中给每个动作一个唯一的符号,你可以将问题减少到最长的公共子串或子序列。
或者有一个路径映射到行动发生的次数。每当某个路径发生时,增加该路径的计数。然后排序找到最常见的。
答案 1 :(得分:0)
到目前为止的伪想法/实施
将用户操作记录到列表/一系列操作中,批量有点样式(textfiles / SQL - 无论如何,只存储整个事务以进行后处理)
开始计算每个“1个动作”,“2个动作”,“3个动作”直到一定数量(比如说30个等级)
通过为某些操作提供重要值(可能是产生最终结果的那些)来对它们进行排序
也许有用的结果?
如果我们计算所有[A],[AA],[AB],[AC],[AAA],[AAB]等等,它会生成一个很长的列表,列出了经常在行中使用的动作,这是正确的方向,因为如果其中一些结果太高,我们可能需要更短的路径。那么问题是,要优化的动作太少,需要搜索最长的动作列表是什么?我的猜测是我们需要先计算,然后检查数字。
问题是,这将是我们正在开发的分析工具的一部分,我们在实现之前没有数据,因此我们不知道在实际完成之前要查找什么。嗯...想知道这个答案是否确实存在。