- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的日常工作是一个基于浏览器的在线游戏,一个很小的,有一个非常小的工作人员。事实上,我们的大部分工作人员都是志愿者。
我今天专注于一个方面。我想创建一个人工智能系统来分析我们的用户数据库并报告可能由同一用户运行的帐户——这显然违反了我们的条款和条件。这种“欺骗”是我们员工的主要时间消耗,如果我能给他们一个简短的名单,让他们先检查一下,我会加快速度。
问题是,我对人工智能不太精通。我了解非常基础的知识,但目前还没有成功实现解决方案。我一直在阅读启发式搜索,特别是a*搜索,我“认为”它可能适合我正在寻找的东西,但我不能确定。
因此,我的问题是:使用a*搜索,是否有可能准确分析两个用户帐户的数据,如用户名、密码、电子邮件、帐户之间的交互、其他用户之间的交互、登录时间、活动时间等。如果没有,您是否知道有一个系统可以分析这么多数据,给出两个账户可能由同一个人管理的“概率”?
最佳答案
至少在很大程度上,这是我的日常工作。从你的问题来看,你似乎在思考机器学习的规律(而不是更广泛的准则,人工智能)。我认为你的直觉是正确的——ML算法非常适合欺诈预测/检测,因为它可以在一个高度非线性的域上进行推广,并且它可以适应(随着新数据的输入)。因此,由于这两个主要特征,欺诈者很难辨别出用于预测的算法“规则”—因为这些规则实际上是一组复杂的网状软约束,并且随着时间的推移,随着算法对新数据的学习而变化。(我可能会建议你把一个*放在一边,除非你有一个特别的理由相信寻路对你的问题是一个有用的启发——我不愿意说没有联系,但如果有,那肯定是一个非正统的——我从未见过寻路应用于这类问题)。
你提到的唯一一个你感兴趣的在线欺诈类型是一个用户的多个账户。毫无疑问,这里可以应用多种技术,但我将特别提到一种分析技术,因为:(i)我实际上已经在您提到的场景中使用了它;(ii)到目前为止,它还不在其他答案的范围内。
这项技术基于图论。
前提是:同一用户拥有的帐户通常不是通过其个人行为(clickstream)而是通过它们之间的关系(换句话说,是通过它们的网络行为)来识别的。
例如:在线扑克中的chip-dumping。在这里,一个人在扑克网站上开设多个新账户(使用虚假信息),然后为每个账户申领广告奖金(例如,100美元的存款与100美元的奖金相匹配)。当然,奖金有非常严格的“兑现规则”,通常是在奖金变为现金并可作为现金从玩家帐户中提取之前玩的手的阈值。
因此,芯片倾销的目标是把这些奖金变成真正的现金。一个人开五个独立的账户(作为五个不同的人),然后再开一个“合法”的账户(使用他们的真实身份)。这六个玩家——实际上只是一个玩家——将在一张桌子上互相竞争,而这五个假账户将很快失去他们的牌堆到合法账户,合法账户将很快兑现他们的奖金,因为当然奖金的兑现限制只适用于他们最初获得奖金的账户;因此,现金流出限制完全被规避。
这类方案的难点在于,非法行为实际上是不可能在个人账户的基础上被发现的——不良行为,合谋,是由一组共同拥有的账户的相互作用引起的——换句话说,利益行为需要在网络层面加以研究。
因此,图论是一个自然的分析框架。
我应用的技术是基于周等人的一篇学术论文。在卡内基梅隆,标题为Detecting Fraudulent Personalities in Networks of Online Auctioneers(pdf)。
本文的核心欺诈场景是:ebay上的卖家希望将非常昂贵的商品(他们可能甚至不拥有,但在任何情况下,都没有向买家发货的意图)卖给有意愿的买家。为了诱使无辜的买方自愿参与交易,欺诈性卖方首先通过向一组买方“成功”出售物品获得极高(人为的高)声誉;这些买方往往是买方控制的虚假账户。
更具体地说,本文作者使用马尔可夫随机场上的信念传播算法,将两个层次(帐户级和网络级)的数据组合起来。
顺便说一句,签名图结构被称为二分核心,它产生于一组帐户,这些帐户在该组成员之间有非常高的交易量,但在该组之外很少有交易(即与ebay社区的其他成员一起)。
关于algorithm - 人工智能方法检测游戏中的作弊行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7492940/
我想了解 Ruby 方法 methods() 是如何工作的。 我尝试使用“ruby 方法”在 Google 上搜索,但这不是我需要的。 我也看过 ruby-doc.org,但我没有找到这种方法。
Test 方法 对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean 值指示是否找到匹配的模式。 object.Test(string) 参数 object 必选项。总是一个
Replace 方法 替换在正则表达式查找中找到的文本。 object.Replace(string1, string2) 参数 object 必选项。总是一个 RegExp 对象的名称。
Raise 方法 生成运行时错误 object.Raise(number, source, description, helpfile, helpcontext) 参数 object 应为
Execute 方法 对指定的字符串执行正则表达式搜索。 object.Execute(string) 参数 object 必选项。总是一个 RegExp 对象的名称。 string
Clear 方法 清除 Err 对象的所有属性设置。 object.Clear object 应为 Err 对象的名称。 说明 在错误处理后,使用 Clear 显式地清除 Err 对象。此
CopyFile 方法 将一个或多个文件从某位置复制到另一位置。 object.CopyFile source, destination[, overwrite] 参数 object 必选
Copy 方法 将指定的文件或文件夹从某位置复制到另一位置。 object.Copy destination[, overwrite] 参数 object 必选项。应为 File 或 F
Close 方法 关闭打开的 TextStream 文件。 object.Close object 应为 TextStream 对象的名称。 说明 下面例子举例说明如何使用 Close 方
BuildPath 方法 向现有路径后添加名称。 object.BuildPath(path, name) 参数 object 必选项。应为 FileSystemObject 对象的名称
GetFolder 方法 返回与指定的路径中某文件夹相应的 Folder 对象。 object.GetFolder(folderspec) 参数 object 必选项。应为 FileSy
GetFileName 方法 返回指定路径(不是指定驱动器路径部分)的最后一个文件或文件夹。 object.GetFileName(pathspec) 参数 object 必选项。应为
GetFile 方法 返回与指定路径中某文件相应的 File 对象。 object.GetFile(filespec) 参数 object 必选项。应为 FileSystemObject
GetExtensionName 方法 返回字符串,该字符串包含路径最后一个组成部分的扩展名。 object.GetExtensionName(path) 参数 object 必选项。应
GetDriveName 方法 返回包含指定路径中驱动器名的字符串。 object.GetDriveName(path) 参数 object 必选项。应为 FileSystemObjec
GetDrive 方法 返回与指定的路径中驱动器相对应的 Drive 对象。 object.GetDrive drivespec 参数 object 必选项。应为 FileSystemO
GetBaseName 方法 返回字符串,其中包含文件的基本名 (不带扩展名), 或者提供的路径说明中的文件夹。 object.GetBaseName(path) 参数 object 必
GetAbsolutePathName 方法 从提供的指定路径中返回完整且含义明确的路径。 object.GetAbsolutePathName(pathspec) 参数 object
FolderExists 方法 如果指定的文件夹存在,则返回 True;否则返回 False。 object.FolderExists(folderspec) 参数 object 必选项
FileExists 方法 如果指定的文件存在返回 True;否则返回 False。 object.FileExists(filespec) 参数 object 必选项。应为 FileS
我是一名优秀的程序员,十分优秀!