【发布时间】:2010-02-21 20:03:59
【问题描述】:
我正在尝试执行以下操作: 我们正在尝试为股票市场设计一个欺诈检测系统。 我知道欺诈的规范(它们就像模板)。 所以我想知道我是否可以设计一个模板,并找到与这个模板匹配的所有记录。
注意: 我不能使用传统查询,因为模板很复杂 例如我的欺诈之一是循环交易,它是这样的: A从B买,B从C买,C从A买(循环) 这个周期可以包括 4 或 5 人。
对于这种情况有什么好的建议吗?
【问题讨论】:
我正在尝试执行以下操作: 我们正在尝试为股票市场设计一个欺诈检测系统。 我知道欺诈的规范(它们就像模板)。 所以我想知道我是否可以设计一个模板,并找到与这个模板匹配的所有记录。
注意: 我不能使用传统查询,因为模板很复杂 例如我的欺诈之一是循环交易,它是这样的: A从B买,B从C买,C从A买(循环) 这个周期可以包括 4 或 5 人。
对于这种情况有什么好的建议吗?
【问题讨论】:
我不明白您为什么不能使用您所说的“传统查询”。 SQL 可用于编写非常复杂的查询。就此而言,我不确定这是一个极具挑战性的问题。
首先,我会查看您所描述的不同事务的行为,因此我将事务视为模型。我可能有一个transactions 表,其中包含buyer、seller、amount 等列...
您也可以将shares 作为自己的表并存储说该共享的前 100 个所有者使用 STI(单表继承)购买将所有者的所有主键放入“所有者”中shares 表中的列,例如 234/823/12334/1234/...,这样您就可以执行复杂的查询,查看该共享是否由同一个人所有,或者非常轻松快速地查找字符串中的模式。
-更新-
我不建议编写“小语言” 我不明白为什么当您有大量出色的语言和数据库可供选择时,您为什么要这样做并经过测试的方法可以准确解决您正在做的事情。
我最好的建议是打开你的 IDE(为 TextMate 点赞)并选择你最喜欢的语言(在我的例子中是 Ruby)。找到一些示例数据并创建您的数据库并开始编写一些代码!尝试这样的实验不会出错,它将完全揭示出比我们在 Stackoverflow 上想象的更好的方法。
【讨论】:
绝对是数据挖掘。但正如您所指出的,您已经有了模型(您的模板)。查找欺诈检测而不是预防以获得更好的搜索结果?
我知道一些银行使用 SPSS PASW Modeler 进行欺诈检测。这非常直观,您可以在处理数据时看到自己在做什么。所以你可以实现你的模板。我同意 Joseph 的观点,你需要开始玩,制作一些新的数据结构。
也许是时间序列模型?
【讨论】:
从理论上讲,您可以首先开发一种“小语言”,它具有简单的语法(这使得表达领域 - 在您的情况下是欺诈模式 - 变得容易)并从中生成一个或多个 SQL 查询。
作为大多数解决方案,这可以被认为是一个滑块:在另一个极端有“完整的欺诈检测语言”,您可以为最常见的情况构建存储过程,并编写新的存储过程使用您之前编写的更“基本”的块来实现各种模式。
您正在尝试做的事情属于数据挖掘的范畴,因此您也可以尝试了解更多信息:也许您可以为您的特定数据库(您没有指定)找到一个数据挖掘包并查看它是否帮助您找到数据中的常见模式。
【讨论】: