反欺诈与异常点检测

news2024/11/24 11:38:26

1. 反欺诈检检测

1.1 反欺诈检测的难点

        反诈骗实际是个多分类问题,每种不同的诈骗都当做一种单独的类型。除了欺诈手段多样且持续变化,欺诈检测一般还面临以下问题:

    1. 大部分情况下数据是没有标签的,各种成熟的监督学习没有用武之地;

    2. 区分噪音和异常点时难度很大,甚至需要发挥一点点想象力和直觉;

    3. 当多种诈骗数据混合在一起,区分不同的诈骗类型更难;

         根本原因还是因为我们并不了解每一种诈骗定义。

    4. 即使真的有诈骗的历史数据,在有标签的情况下用监督学习,也存在很大的风险。

         用这样的历史数据学出的模型只能检测曾经出现过与历史诈骗相似的诈骗,而对于变种的诈骗和从未见过的诈骗,模型将无能为力。

        在实际情况中,不建议直接用任何监督学习,至少不能单纯依靠一个监督学习模型来奢求检测到所有的诈骗。一般使用无监督学习,且需要领域专家来验证我们的预测,提供反馈,以便于及时的调整模型。

1.2 解决反欺诈问题的可能手段

1.2.1 迁移学习

        源域样本和目标域样本分布有区别,目标域样本量又不够。通过算法缩小边缘分布之间和条件分布下的差异。

1. 基于实例迁移;

2. 基于特征的迁移;

3. 基于模型的迁移。

缺点:需要拥有与当前目标场景相关的源域数据。

1.2.2 专家模型

        根据专家多年从业经验进行定性判断,它根据主观经验进行打分,而不是根据统计分析或者模型算法来进行客观的计算。操作:

1. 凭经验判断特征重要性;

2. 凭经验为变量加权。

缺点:需要大量的行业经验积累,有时候很难让人信服。

1.2.3 无监督算法

        在风控领域中主要使用的是聚类和无监督异常检测。而聚类是发现样本间的相似性,异常检测则是发现样本间的相异性。这里主要介绍聚类算法:

    (1)K-Means

    (2)DBSCAN

        DBSCAN是数据挖掘中最经典基于密度的聚类算法,其核心是:通过某个点 r 邻域内样本点的数量来衡量该点所在空间的密度。和k-means算法的不同的是:

1. 可以不需要事先指定cluster的个数;

2. 可以找出不规则形状的cluster。

    (3)社区发现

        对负样本聚类,将逾期客群描述成欺诈风险信用风险两部分。社区发现算法也是当前识别团伙欺诈的主要手段之一,主要思想是通过知识图谱将小团体筛选出来。在金融领域,聚集意味着风险

2. 异常点检测(Outlier detection)

        又称为离群点检测,是找出与预期对象的行为差异较大的对象的一个检测过程。这些被检测出的对象被称为异常点或离群点。异常点检测应用非常广泛:

1. 信用卡反欺诈

2. 工业损毁检测

3. 广告点击反作弊

4. 刷好评,刷单检测

5. 羊毛党检测

      异常检测一般是无监督的,往往看似是二分类,但其实是多分类(造成异常的原因各不相同)。

2.1 算法假设

  • 异常数据跟样本中大多数数据不太一样;

  • 异常数据在整体数据样本中占比比较小。

2.2 主要思想

        主流异常检测方法都是基于样本(小群体)间的相似度proximity。

1. 距离

2. 密度

3. 角度

4. 隔离所需的难度

5. 簇

    为什么要用无监督异常检测方法?

1. 样本群体有异构成分,可以对样本做筛选;

2. 很多场景没有标签或者标签很少,不能训练监督模型(比如冷启动项目、欺诈模型);

3. 样本总是在发生变换,只能从一个小群体内部发现异常(比如欺诈检测,手段多变,团伙欺诈通常集中在某段时间内);

4. 异常检测假设异常样本占比很少,并且从某种度量上远离其他样本,这符合我们个体欺诈的先验知识。但是在团体欺诈检测中就不太适用了。

2.3 异常点检验常用算法

2.3.1 z-score异常检测

        假设样本服从正态分布,z-score 用于描述样本偏离正态分布的程度。通过计算 $\mu$ 和 $\sigma$ 得到当前样本所属于的正态分布的表达式,然后分别计算每个样本在这个概率密度函数下被生成的概率,当概率小于某一阈值时,认为这个样本是不属于这个分布的,因此定义为异常值。

计算公式:Z-score = (x -μ) /δ

68% 的数据分布在 +/- 1 倍标准差之间;

95% 的数据分布在 +/- 2 倍标准差之间;

99.7% 的数据分布在 +/- 3 倍标准差之间。

结论:如果一个数据计算出它的z-score >2 甚至>3 说明这个数据和其它数据之间有很大差别。

缺点:需要假设样本满足正态分布,而我们大部分场景都不满足这种假设条件。

2.3.2 Local Outlier Factor

        LOF是基于密度的经典算法,在 LOF 之前的异常检测算法大多是基于统计方法的,或者是借用了一些聚类算法用于异常点的识别(如DBSCAN)。

1. 基于统计的异常检测算法通常需要假设数据服从特定的概率分布,但假设往往不成立;

2. 聚类方法通常只能给出 0/1 的判断(即:是不是异常点),不能量化每个数据点的异常程度;

3. 基于密度的LOF算法要更简单、直观,不需要对数据的分布做太多要求,还能量化每个数据点的异常程度(outlierness)。

        LOF会为每一个数据点计算出一个分数,通过这个分数的大小来判断数据是否异常。

    LOF ≈1 ⇒ 非异常;

    LOF ≫1 ⇒ 异常。

LOF计算过程:

1. 确定近邻点数量K;

2. LOF通过计算最近的K个点的距离来计算密度,然后将其与其它点的密度进行比较;

3. K的选择会对结果产生影响:

    选择比较小的K值,会只计算附近的点,但会受到噪声的影响;

    如果K选的比较大,可能会错过局部离群点。

几种距离简介:  

(1)K-邻近距离(k-distance):

       k-distance即点到第k个邻居的距离,如果k为3,则k-distance将是点到第三最近点的距离。

(2)可达距离(reachability distance): 表示的是两个点的距离和第二个点的k-distance中的最大值。

  reach-dist(a,b) = max{k-distance(b), dist(a,b)}

        如果点a在点b的k个邻居内,则reach-dist(a,b)将是b的k-距离。否则,它将是a和b的实际距离。为了便于理解,可以当做两点之间的距离。

(3)局部可达密度lrd(local reachability densit):

         LRD可以通过reach-dist计算得出,点a的lrd,首先计算a到它的所有k个最近邻居的reach-dist,并取该数字的平均值,lrd是该平均值的倒数。 LRD代表一种密度,因此,到下一个近邻点的距离越长,相应点所在的区域就越稀疏。反之密度越小。

    lrd(a) = 1/(sum(reach-dist(a,n))/k)

    LRD告诉我们,从一点到另一个点或者另一堆点,距离多远。(LRD越小,密度越低,距离越远)。
 

2.3.3 孤立森林(Isolation Forest)

基本思想:

    假设现在有一组一维数据,我们要对这组数据进行随机切分,希望可以把点 A 和点 B 单独切分出来

    先在最大值和最小值之间随机选择一个值 x,然后按照 <x 和 >=x 可以把数据分成左右两组

    在这两组数据中分别重复这个步骤,直到数据不可再分。点 B 跟其他数据比较疏离,可能用很少的次数就可以把它切分出来

    点 A 跟其他数据点聚在一起,可能需要更多的次数才能把它切分出来。

把数据从一维扩展到两维,沿着两个坐标轴进行随机切分,尝试把下图中的点A'和点B'分别切分出来

    先随机选择一个特征维度,在这个特征的最大值和最小值之间随机选择一个值,按照跟特征值的大小关系将数据进行左右切分

    在左右两组数据中重复上述步骤,随机按某个特征维度的取值把数据细分,直到无法细分(剩下一个数据点,或剩下的数据都相同。

    点B'跟其他数据点比较疏离,可能只需要很少的几次操作就可以将它细分出来;点A'需要的切分次数可能会更多一些。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1400643.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于深度学习的细胞感染性识别与判定

基于深度学习的细胞感染性识别与判定 基于深度学习的细胞感染性识别与判定引言项目背景项目意义项目实施数据采集与预处理模型选择与训练模型评估与优化 结果与展望结论 基于深度学习的细胞感染性识别与判定 引言 随着深度学习技术的不断发展&#xff0c;其在医学图像处理领域…

【操作系统和计网从入门到深入】(四)基础IO和文件系统

前言 这个专栏其实是博主在复习操作系统和计算机网络时候的笔记&#xff0c;所以如果是博主比较熟悉的知识点&#xff0c;博主可能就直接跳过了&#xff0c;但是所有重要的知识点&#xff0c;在这个专栏里面都会提到&#xff01;而且我也一定会保证这个专栏知识点的完整性&…

【网站项目】基于jsp的199旅游景点管理系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

最安全的飞行器——飞行汽车

飞行汽车采用旋翼机飞行方式&#xff0c;稳定可靠&#xff0c;保证人身安全&#xff0c;可以垂直起降。旋翼机的稳定性在所有航空器中最高的&#xff0c;旋翼机被国际航空界公认为最安全的飞行器&#xff01;增程器采用斯特林发电机。飞行汽车3D。 固定翼飞机在起飞的时候&…

二叉树 - 堆 | 数据结构中的小技巧大作用

&#x1f4f7; 江池俊&#xff1a; 个人主页 &#x1f525;个人专栏&#xff1a; ✅数据结构冒险记 ✅C语言进阶之路 &#x1f305; 有航道的人&#xff0c;再渺小也不会迷途。 文章目录 一、堆的概念及介绍二、结构图示三、堆的代码实现&#xff08;图解&#xff09;3.1 创…

【RT-DETR有效改进】华为 | GhostnetV2移动端的特征提取网络效果完爆MobileNet系列

前言 大家好&#xff0c;这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进&#xff0c;内容持续更新&#xff0c;每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本&#xff0c;同时修改内容也支持ResNet32、ResNet101和PP…

【RT-DETR有效改进】Google | EfficientNetV1一种超轻量又高效的网络 (附代码 + 添加教程)

前言 大家好&#xff0c;我是Snu77&#xff0c;这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进&#xff0c;内容持续更新&#xff0c;每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本&#xff0c;同时修改内容也支持Re…

2024首更---Web Service 教程

Web Services 简介 Web Services 可使您的应用程序成为 Web 应用程序。 Web Services 通过 Web 进行发布、查找和使用。 您应当具备的基础知识 在继续学习之前&#xff0c;您需要对下面的知识有基本的了解&#xff1a; HTMLXML 如果您希望首先学习这些项目&#xff0c;请在…

蓝桥杯-dfs(一)

&#x1f4d1;前言 本文主要是【算法】——dfs使用的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&#xff1…

RLC如何通过改变频率实现输出稳压

当开关频率工作在容性区域时&#xff0c;容抗抵消完感抗还有剩余&#xff0c;所以容抗感抗可以近似为一个容抗Cr,但加上频率的改变&#xff0c;容抗又可以近似为一个可调电阻 那又改如何控制频率&#xff0c;保持输出稳压&#xff1f; 当输入与输出电压不变时&#xff0c;Rac变…

Oracle 经典练习题 50 题

文章目录 一 CreateTable二 练习题1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数2 查询"01"课程比"02"课程成绩低的学生的信息及课程分数3 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩4 查询平均成绩小于…

[小程序]API、数据与事件

一、API ①事件监听API 以on开头&#xff0c;用来监听事件的触发&#xff08;如wx.inWindowResize&#xff09; ②同步API 以Sync结尾&#xff0c;且可以通过函数返回值获取&#xff0c;执行错误会抛出异常&#xff08;如wx.setStorageSync&#xff09; ③异步API 类似网页中的…

yum下载源,vim使用

文章目录 yum本地配置lzrsz命令行互传scp(远程拷贝)vim yum本地配置 [rootiZf8z3j2ckkap6ypn717msZ ~]# pwd /root [rootiZf8z3j2ckkap6ypn717msZ ~]# ls /etc/yum.repos.d CentOS-Base.repo epel.repo //本地配置源yum会根据/etc/yum.repo.d路径下的配置文件来构成自己的下载…

pip安装之后还是无法使用问题处理

最近由于需要使用到Python 相关功能&#xff0c; 记录下一些入门小技巧 1 python 下载安装 在window10 环境下载免安装版本&#xff0c; 并解压 安装包下载地址&#xff1a; https://www.python.org/ftp/python/3.12.1/python-3.12.1-embed-amd64.zip 2. 安装pip, 由于是内嵌…

基于无锁循环队列的线程池的实现

目录 出处&#xff1a;B站码出名企路 应用场景 设计实现 等待策略模块 晚绑定 C 中的 override关键字 C中的 default 关键字 C中的 delete 关键字 C中的 explicit 关键字 C中 using 别名技巧 sleep 和 yield的区别 noexcept关键字 volatile关键字 无锁循环队列的…

【计算机网络】TCP握手与挥手:三步奏和四步曲

这里写目录标题 前言三次握手四次挥手三次握手和四次挥手的作用TCP三次握手的作用建立连接防止已失效的连接请求建立连接防止重复连接 TCP四次挥手的作用&#xff1a;安全关闭连接避免数据丢失避免半开连接 总结&#xff1a; 总结 前言 TCP&#xff08;传输控制协议&#xff09…

《游戏-02_2D-开发》

基于《游戏-01_2D-开发》&#xff0c; 继续制作游戏&#xff1a; 首先给人物添加一个2D重力效果 在编辑的项目设置中&#xff0c; 可以看出unity默认给的2D重力数值是-9.81&#xff0c;模拟现实社会中的重力效果 下方可以设置帧率 而Gravity Scale代表 这个数值会 * 重力 还…

MySQL---多表等级查询综合练习

创建emp表 CREATE TABLE emp( empno INT(4) NOT NULL COMMENT 员工编号, ename VARCHAR(10) COMMENT 员工名字, job VARCHAR(10) COMMENT 职位, mgr INT(4) COMMENT 上司, hiredate DATE COMMENT 入职时间, sal INT(7) COMMENT 基本工资, comm INT(7) COMMENT 补贴, deptno INT…

【cucumber】cluecumber-report-plugin生成测试报告

cluecumber为生成测试报告的第三方插件&#xff0c;可以生成html测报&#xff0c;该测报生成需以本地json测报的生成为基础。 所以需要在测试开始主文件标签CucumberOptions中&#xff0c;写入生成json报告。 2. pom xml文件中加入插件 <!-- 根据 cucumber json文件 美化测…

使用docker配置semantic slam

一.Docker环境配置 1.拉取Docker镜像 sudo docker pull ubuntu:16.04拉取的为ununtu16版本镜像&#xff0c;环境十分干净&#xff0c;可以通过以下命令查看容器列表 sudo docker images 如果想删除多余的docker image&#xff0c;可以使用指令 sudo docker rmi -f <id&g…