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