Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Path 检测和存储路径组合以供以后分析的最佳方法_Path_Storage_Design Patterns_Pattern Recognition - Fatal编程技术网

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

Path 检测和存储路径组合以供以后分析的最佳方法,path,storage,design-patterns,pattern-recognition,Path,Storage,Design Patterns,Pattern Recognition,我正在寻找有关如何存储用户路径模式的想法/示例,目的是分析他们的行为,并在我们能够以某种方式检测到“最常用路径”时对其进行优化 他们在做什么之后会做什么动作,这样我们以后就可以检查某些动作是否反复进行了,从而开发出一条捷径或将一些动作组合成一个组合的多动作 我的第一个猜测是某种“简单日志”,可能以某种SQL方式存储,我们可以将每个操作作为索引保存,然后只记录所有内容 问题是路径/操作可能会动态更改,即使在日志记录时也是如此,所以我们在以后查找模式时也需要考虑到这一点 你会先记录所有的“bigti

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

他们在做什么之后会做什么动作,这样我们以后就可以检查某些动作是否反复进行了,从而开发出一条捷径或将一些动作组合成一个组合的多动作

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

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

你会先记录所有的“bigtime”,然后在一段时间后处理每一个细节,还是你对其他战术有很好的经验

我担心这会占用空间,占用大量时间,一个月或更长时间内每天记录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。我们不知道这些模式可能会持续多久,也不知道它们会出现多久。我们如何将其分解为“小块”呢?您认为最好的方法是什么?

我不知道您所说的路径是什么意思,但是,如果您为路径中的每个动作都指定一个唯一的符号,则可以将问题简化为最长的公共子字符串或子序列


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

迄今为止的伪想法/实现

  • 将曾经的用户操作记录到一个列表/一系列操作中,有点像批量操作(textfiles/SQL-无论如何,只需存储整个操作以供后期处理)

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

  • 通过为某些操作(可能是产生最终结果的操作)提供重要值,对所有操作进行排序

  • 可能是有用的结果吗?

    如果我们计算所有的[A]、[A-A]、[A-B]、[A-C]、[A-A-A]、[A-A-B]等等,这将形成一个长长的、精细的列表,列出哪些操作经常在行中使用,这是正确的方向,因为如果其中一些结果太高,我们可能需要一条更短的路径。问题是,需要优化的操作太少,需要搜索的最长操作列表是什么?我的猜测是,我们需要先进行计数,然后检查数字


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

    有趣的是,我会在问题中更好地解释它。结束我的问题。不知道如果我不只是“标记它”怎么办。