Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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
Algorithm 如何确定当前数据值集是否表示或与以前的历史数据值相关?_Algorithm_Statistics_Machine Learning_Artificial Intelligence_Data Mining - Fatal编程技术网

Algorithm 如何确定当前数据值集是否表示或与以前的历史数据值相关?

Algorithm 如何确定当前数据值集是否表示或与以前的历史数据值相关?,algorithm,statistics,machine-learning,artificial-intelligence,data-mining,Algorithm,Statistics,Machine Learning,Artificial Intelligence,Data Mining,我试图开发一种基于页面请求识别用户浏览模式的方法。 在一个简单的示例中,我创建了8个页面,对于用户对该页面的每个页面请求,我将该页面的请求频率存储在数据库中,如下所示: 现在,我的假设是识别页面请求模式中的差异,这导致了我的假设,即如果该模式与先前存在的模式不同,那么它就是不同的(欺诈)用户。我正在尝试将此方法开发为多因素身份验证系统的一部分 现在,当用户登录并使用与之前观察到的模式不同的模式浏览时,系统应该能够将其识别为模式的变化 问题是如何利用这些数据值来检查当前模式是否与预先存在的模式相关

我试图开发一种基于页面请求识别用户浏览模式的方法。 在一个简单的示例中,我创建了8个页面,对于用户对该页面的每个页面请求,我将该页面的请求频率存储在数据库中,如下所示:

现在,我的假设是识别页面请求模式中的差异,这导致了我的假设,即如果该模式与先前存在的模式不同,那么它就是不同的(欺诈)用户。我正在尝试将此方法开发为多因素身份验证系统的一部分

现在,当用户登录并使用与之前观察到的模式不同的模式浏览时,系统应该能够将其识别为模式的变化


问题是如何利用这些数据值来检查当前模式是否与预先存在的模式相关。

一种方法是使用无监督的学习方法,如自组织映射(SOM,)。针对表示预期/正常用户行为的数据对SOM进行培训,然后查看候选数据集与经过培训的映射的匹配程度。与“自组织地图”一起搜索的关键词可能是“新颖性/异常/入侵检测”(例如出现)


您应该考虑是否可以提前对欺诈性用例进行建模(在这种情况下,您可以专门为它们培训检测器),或者是否只关注与正常行为的偏差。

好的,这里有一个非常简单的想法(基本上,您要做的是生成一组功能,然后确定当前会话行为是否与之前观察到的行为不同)。我喜欢思考这些一类问题(只有正常的行为可以训练,想要检测到显著的偏离)作为密度估计问题,这里有一个简单的概率模型,可以让你得到当前请求模式的概率。基本上,当这个概率太低时(你需要调整它的低到何种程度才能达到预期的行为),就会发生一些事

我们的观察包括每一页的计数。让它们的总和,请求的总数,等于c_total,每一页的计数i为p_i。然后我建议:

总泊松(\lambda)

p | c|u total~多项式(\theta,c|u total)

这允许您为已知的用户特定参数\lambda(单变量)和\theta(与p维度相同的向量)的新观测分配概率。为此,请计算从泊松分布的pmf中看到许多请求的概率,然后计算从多项式中看到页面计数的概率,并将它们相乘。然后,您可能希望使用c_total进行归一化,以便可以比较具有不同请求数目的会话(因为请求越多,相乘的小于1的数字就越多)


所以,剩下的就是从该用户以前的“良好”会话中获取参数。最简单的是最大可能性,其中\lambda是以前会话中请求的平均总数,\theta_i是所有p_i页面视图的比例(对于该特定用户)。这可能对您有用:但是,鉴于您希望从非常少量的观察中学习,我倾向于使用完整的贝叶斯模型。这还可以让您在每次非可疑的观察后灵活地更新参数。在这些分布中进行推断非常容易,具有\lambda和\theta以及分析的共轭先验c预测分布,因此,如果您对这些类型的模型非常熟悉,就不难了。

如果您想从简单开始,请实现一个。这将允许您定义一组“好的”向量。可以将当前用户的活动与良好的向量进行比较。如果无法检索到良好的向量,则会标记该活动。

给出欺诈行为的示例对于上述数据集,欺诈会话将由页面请求频率组成,如:90,10,0,0,0400,20,1在这种情况下,您应该计算总页面访问并比较。在非欺诈案例中,平均值似乎在3-4左右。但是,在欺诈案例中,平均值要高得多。基本上,你需要创建“功能”(如总页面访问量),这将对你有所帮助。这不是一次性的过程。创建一组有用的“功能”需要多次迭代和大量领域知识我认为这是一个可能的解决方案,但我想知道是否有一些明确定义的方法,通常用于解决这类问题。无论如何,非常感谢您的帮助。我致力于生成一组功能,并开发了简单的统计方法,通过计算绝对值来识别浏览模式的差异偏离中心趋势,到目前为止,我想知道它的准确性,因为我还没有测试结果。我会同意你对贝叶斯方法的建议,但在涉及基本统计技术以外的专门方法时,我相当天真。你能提供一些我可以学习的来源吗?因为你提到了你的教授,我假设你是一名学生,可以阅读课本。如果是的话,我喜欢凯文·墨菲的《机器学习:概率视角》,这将涵盖贝叶斯推理的基础知识,并有许多实际例子。根据统计知识,我的圣经是Gelman等人的贝叶斯数据分析,但你需要一个相当强大的背景才能从中获得很多。是的,我是CS本科生,所以我将在图书馆或亚马逊上查找。谢谢你的帮助我会尽我所能充分利用它。很好的解决方案,需要再次拿起书来完全理解它。再次感谢。如果你想更深入地挖掘,请查阅入侵检测方面的文献:是的,甚至我的教授都建议我尝试SOM,