加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

使用Spark MLlib进行基于Jave的欺诈检测

发布时间:2018-05-18 17:47:32 所属栏目:教程 来源:李佳惠
导读:副标题#e# 【资讯】了解如何使用Java和Spark MLlib开发一种算法,该算法能够根据700万条记录的数据集检测欺诈行为。 在这篇文章中,我们将使用Spark MLlib开发Java中的算法。完整的工作代码可以从GitHub下载。可以在不使用深入的Java知识(使用配置文件)的

  2.接下来,将需要μ(均值)和σ2(方差)的计算,因为它们对于获得新例子的概率至关重要。 代码如下所示:  使用Java和Spark MLlib开发一种算法检测欺诈行为,可行吗?

  3.如前所述,一旦我们使用高斯公式,具有均值和方差,就可以计算出概率值。 根据概率值,我们决定它是一个异常还是一个正常的例子。 将该值与某个阈值(ε)进行比较。如果它较低,那么我们将其标记为异常,如果更大,则将其标记为常规。 选择epsilon是至关重要的,因为具有小的价值会导致算法标记大量的虚假欺诈。 另一方面,大的价值,我们又会错过欺诈。 所以使用精确的交叉验证数据和召回选择最佳的epsilon。

使用Java和Spark MLlib开发一种算法检测欺诈行为,可行吗?

  4.现在,我们准备在测试数据上评估我们的算法(我们也对交叉验证数据做了可选的评估)。  使用Java和Spark MLlib开发一种算法检测欺诈行为,可行吗?

  在执行算法之前,需要下载数据(因为GitHub的文件大小限制而没有打包),解压缩,然后把allData.csv复制粘贴到文件夹data / allData.csv。 文件位置是可配置的,以及文件名称。 该算法可以通过配置文件config / algorithm.properties中的数据和各种选项进行测试,如下所示: 

使用Spark MLlib进行基于Jave的欺诈检测

  配置更改后,应用程序可以在Java IDE或Maven上运行:

使用Java和Spark MLlib开发一种算法检测欺诈行为,可行吗?

  根据机器和配置,应用程序可能需要一些时间(对我来说,这需要两分钟)完成。 此外,计算机可能会冻结,因为在某个时刻,Spark将CPU占用率降至100%。 此外,应用程序使用大量的内存(2-3 GB)。 可以看到打印在控制台上的结果或通过查看文件夹out /; 会有一个生成的文件* .txt与输出。 该算法是基于随机性的,所以你可以将其配置为运行多次,并且每次执行期望一个文件。

  实验和结果

  从这次的实验中,发现欺诈只适用于两种类型:TRANSFER和CASH_OUT。 在以前的文章中详细****了TRANSFER。 我们取得了很高的比例:99.7%。

  当仅为CASH_OUT类型运行而不跳过任何列/功能时,我们得到的结果很差:

使用Java和Spark MLlib开发一种算法检测欺诈行为,可行吗?

  我们只能找到约14%的这种欺诈行为。 以前,我们可以通过使特征看起来像高斯钟形曲线来改善很多,但不幸的是,这次并不是这样。

  我们可以做的是看看功能,看看是否可以添加或跳过一些功能,因为功能cam=n引起混乱和噪音,而不是好处。查看数据源,我们有以下描述的欺诈,这可以帮助:

使用Java和Spark MLlib开发一种算法检测欺诈行为,可行吗?

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读