一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于超图的密集子图检测方法、装置及终端设备与流程

2022-12-07 02:32:47 来源:中国专利 TAG:


1.本发明涉及一种基于超图的密集子图检测方法、装置及终端设备。


背景技术:

2.在风控领域中,无监督的异常检测对于发现团伙作案,相比于模型和策略的防控,有着互补的作用,并且能够识别模型和策略以外的欺诈方式。然而,现有的异常对象检测方法进行异常对象识别时,数据处理过程比较简单,很容易造成误判,从而导致识别精度较低。


技术实现要素:

3.为了解决上述技术问题,本发明提供一种基于超图的密集子图检测方法、装置及终端设备。
4.为了解决上述问题,本发明采用以下技术方案:
5.一种基于超图的密集子图检测方法,包括:
6.获取多个用户的特征序列,所述特征序列中包括至少两种特征类型,且各用户的特征序列中的特征类型相同;
7.根据各特征共同出现的次数以及用户总数,获取各特征的异常风险分值,从而得到异常风险分值矩阵;其中,若特征仅出现一次,则对应的异常风险分值为0;
8.计算所述异常风险分值矩阵的整体风险分值,得到初始整体风险分值;
9.计算所述异常风险分值矩阵各行的和值,将最小且不为0的和值对应的行全部赋值为0,第一次更新所述异常风险分值矩阵;然后,将第一次更新后的所述异常风险分值矩阵中只有一个数值不为0的列全部赋值为0,第二次更新所述异常风险分值矩阵;
10.计算第二次更新得到的异常风险分值矩阵的整体风险分值,得到新整体风险分值,若所述新整体风险分值大于所述初始整体风险分值,则计算所述异常风险分值矩阵各行的和值,确定和值不为0的用户为风险用户。
11.作为一个具体实施方式,所述根据各特征共同出现的次数以及用户总数,获取各特征的异常风险分值,包括:
12.从各用户的特征序列中找到共同特征,所述共同特征为出现至少两次的特征,基于共同特征构建超边,从而得到超边矩阵;其中,所述超边矩阵的行表示用户,列表示特征类型;
13.根据各特征出现的次数以及用户总数,结合所述超边矩阵,获取各特征的异常风险分值。
14.作为一个具体实施方式,所述异常风险分值的计算公式如下:
[0015][0016]
其中,exp()为以自然常数e为底的指数函数,k为预设的超参数,p为特征出现概
率;
[0017]
特征出现概率p的计算公式如下:
[0018][0019]
其中,n表示特征出现次数,all表示用户总数。
[0020]
作为一个具体实施方式,所述计算所述异常风险分值矩阵的整体风险分值,得到初始整体风险分值,包括:
[0021]
整体风险分值的计算公式如下:
[0022][0023]
其中,abnormalscore表示整体风险分值,x表示异常风险分值矩阵,sum(x)表示异常风险分值矩阵的各元素的和值,row表示异常风险分值矩阵中不全为0的行的数量,col表示异常风险分值矩阵中不全为0的列的数量。
[0024]
一种基于超图的密集子图检测装置,包括:
[0025]
特征序列获取模块,用于获取多个用户的特征序列,所述特征序列中包括至少两种特征类型,且各用户的特征序列中的特征类型相同;
[0026]
异常风险分值矩阵获取模块,用于根据各特征共同出现的次数以及用户总数,获取各特征的异常风险分值,从而得到异常风险分值矩阵;其中,若特征仅出现一次,则对应的异常风险分值为0;
[0027]
初始整体风险分值获取模块,用于计算所述异常风险分值矩阵的整体风险分值,得到初始整体风险分值;
[0028]
异常风险分值矩阵更新模块,用于计算所述异常风险分值矩阵各行的和值,将最小且不为0的和值对应的行全部赋值为0,第一次更新所述异常风险分值矩阵;然后,将第一次更新后的所述异常风险分值矩阵中只有一个数值不为0的列全部赋值为0,第二次更新所述异常风险分值矩阵;
[0029]
风险用户确定模块,用于计算第二次更新得到的异常风险分值矩阵的整体风险分值,得到新整体风险分值,若所述新整体风险分值大于所述初始整体风险分值,则计算所述异常风险分值矩阵各行的和值,确定和值不为0的用户为风险用户。
[0030]
一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的基于超图的密集子图检测方法的步骤。
[0031]
本发明的有益效果为:根据各特征共同出现的次数以及用户总数,得到各特征的异常风险分值,从而得到异常风险分值矩阵,先计算异常风险分值矩阵的整体风险分值,得到初始整体风险分值,用于后续比较,然后采用贪心的方式,以此根据对行和列的处理过程,将异常风险分值最小的那个节点去除,并计算更新得到的异常风险分值矩阵的整体风险分值,与初始整体风险分值进行比较,最终得到风险用户。本发明提供的基于超图的密集子图检测方法能够准确得到具有风险的对象,避免造成误判,识别精度较高。而且,计算速度快,在计算密集子图中,采用贪心方式计算,满足线性时间复杂度,在大数据量上计算有优势,可以做到自适应,不需要任何的先验知识和专家经验,该方案会自动进行筛选。
附图说明
[0032]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍:
[0033]
图1是本技术实施例一提供的基于超图的密集子图检测方法的整体流程示意图;
[0034]
图2是本技术实施例二提供的基于超图的密集子图检测装置的整体结构示意图;
[0035]
图3是本技术实施例三提供的终端设备的结构示意图。
具体实施方式
[0036]
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
[0037]
应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0038]
还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0039]
如在本技术说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0040]
另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0041]
在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0042]
本技术实施例提供的基于超图的密集子图检测方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda)等终端设备上,本技术实施例对终端设备的具体类型不作任何限制。即,本技术实施例提供的基于超图的密集子图检测方法对应的客户端的载体可以是上述各个终端设备中的任意一个。
[0043]
为了说明本技术所述的技术方案,下面通过具体实施方式来进行说明。
[0044]
参见图1,是本技术实施例一提供的基于超图的密集子图检测方法的一种实现过程的流程图,为了便于说明,仅示出了与本技术实施例相关的部分。
[0045]
该基于超图的密集子图检测方法包括:
[0046]
步骤s101:获取多个用户的特征序列,所述特征序列中包括至少两种特征类型,且各用户的特征序列中的特征类型相同:
[0047]
获取多个用户的特征序列,其中,用户的数量为至少两个,具体数量不做限定,由实际应用场景决定。特征序列中包括至少两种特征类型,特征类型的数量不做限定,由实际应用场景决定。并且,各用户的特征序列中的特征类型相同。比如:所有的用户的特征序列中的特征类型均为a、b、c、d四类。
[0048]
作为一个具体实施方式,以注册场景为例,注册中包含几个比较重要的因素,比如用户注册时,使用的手机设备标识,手机号,身份证号,邮箱等。数据表示,即特征序列如表1所示:
[0049]
表1
[0050]
用户邮箱手机号身份证号ip地址注册城市u1e1p1c1i1上海u2e1p2c2i1北京u3e2p1c3i1北京u4e2p1c4i1北京
[0051]
步骤s102:根据各特征共同出现的次数以及用户总数,获取各特征的异常风险分值,从而得到异常风险分值矩阵;其中,若特征仅出现一次,则对应的异常风险分值为0:
[0052]
从各用户的特征序列中找到共同特征,共同特征为出现至少两次的特征。比如根据表1,即邮箱,手机号,身份证号,ip地址,注册城市五种特征类型中,如果存在一个特征包含两个及两个以上的主体(即用户),则该特征为共同特征,由于邮箱e1出现了两次,则邮箱e1为共同特征。基于共同特征构建超边,本实施例中,如果存在一个特征包含两个及两个以上的用户,则构建一条超边,超边形式为[1,1,0,0],其中,长度为用户的数量(即为4),连接的用户(即u1和u2)对应的值为1,其余为0。从而得到超边矩阵,如下所示:
[0053][0054]
其中,超边矩阵的行表示用户,列表示特征类型。
[0055]
得到超图矩阵之后需要构建异常分值矩阵。异常分值表示特征(比如邮箱e1)会连接两个用户(u1,u2),那么这个邮箱如果是一个不常出现的介质,那么若两者连接则说明风险比较大,例如该邮箱。但是如果这个特征比较常出现,比如注册地址:北京,由于通常情况下很多用户都会在北京注册,因此该特征带来的风险就比较小。应当理解,以上分析是基于先验知识,不具备通用性,本实施例采用根据各特征出现的次数以及用户总数,结合超边矩阵,计算各特征的异常风险分值。
[0056]
异常风险分值的计算公式如下:
[0057][0058]
其中,exp()为以自然常数e为底的指数函数,k为预设的超参数(本实施例取10,可以到达较好的计算效果),p为特征出现概率。
[0059]
p的计算公式如下:
[0060][0061]
其中,n表示特征出现次数,all表示用户总数,即对应的特征类型出现的总数量。以邮箱e1为例,邮箱这个特征类型总共出现4次,即all=4,邮箱e1出现2次,即n=2,那么p=0.5。将p的值带入到上述异常风险分值计算公式中,得到邮箱e1对应的异常风险分值,即矩阵h中的第一列对应的异常风险分值,邮箱e1的异常风险分值为[0.007,0.007,0,0]。
[0062]
需要注意的是,对于任意一个特征,若该特征仅出现一次,表示没有风险,则对应的异常风险分值为0,即不按照上述计算过程进行计算。
[0063]
整个超图的异常风险分值矩阵为:
[0064][0065]
上述仅仅是举例说明,涉及数据量比较少,因此异常风险分值较小,在实际场景中,比如邮箱、手机号等,异常风险分值较大,接近于1。
[0066]
步骤s103:计算所述异常风险分值矩阵的整体风险分值,得到初始整体风险分值:
[0067]
整体风险分值的计算公式如下:
[0068][0069]
其中,abnormalscore表示整体风险分值,x表示异常风险分值矩阵,sum(x)表示异常风险分值矩阵的各元素的和值,row表示异常风险分值矩阵中不全为0的行的数量,col表示异常风险分值矩阵中不全为0的列的数量。如上实例,row=4,col=5。
[0070]
作为其他具体实施方式,若异常风险分值矩阵为下所示:
[0071][0072]
则由于第1行和第2行全为0,不算入,则row=2;第1列全为0,不算入,则col=4。
[0073]
步骤s104:计算所述异常风险分值矩阵各行的和值,将最小且不为0的和值对应的行全部赋值为0,第一次更新所述异常风险分值矩阵;然后,将第一次更新后的所述异常风险分值矩阵中只有一个数值不为0的列全部赋值为0,第二次更新所述异常风险分值矩阵:
[0074]
本步骤思路在于采用贪心的方式,将异常分值最小的节点去除,以更新异常风险分值矩阵。
[0075]
计算异常风险分值矩阵各行的和值,从各和值中找到最小且不为0的和值,从而确定该和值对应的行,将该行的所有元素全部赋值为0,第一次更新异常风险分值矩阵。比如如下异常风险分值矩阵:
[0076][0077]
其中,第一行和第二行的和值最小且不为0,由于这两个和值相同,则都进行如下
处理:将第一行和第二行全部赋值为0,则异常风险分值矩阵转换为:
[0078][0079]
然后,获取第一次更新后的异常风险分值矩阵中各列中不为0的数值个数,找到只有一个数值不为0的列,则说明没有边连接(一条边最少要连接两个节点),则将只有一个数值不为0的列的元素全部赋值为0,第二次更新异常风险分值矩阵。比如如下异常风险分值矩阵:
[0080][0081]
那么第二列只有一个大于0,那么第二列要全部赋值为0,即:
[0082][0083]
步骤s105:计算第二次更新得到的异常风险分值矩阵的整体风险分值,得到新整体风险分值,若所述新整体风险分值大于所述初始整体风险分值,则计算所述异常风险分值矩阵各行的和值,确定和值不为0的用户为风险用户:
[0084]
按照步骤s103的过程,计算第二次更新得到的异常风险分值矩阵的整体风险分值,得到新整体风险分值。比较新整体风险分值与初始整体风险分值,若新整体风险分值大于初始整体风险分值,认为异常风险分值矩阵为风险矩阵。则计算异常风险分值矩阵各行的和值,确定和值不为0的用户为风险用户。
[0085]
比如下面的异常风险分值矩阵:
[0086][0087]
计算异常风险分值矩阵各行的和值,找到和值不为0的行,对应的用户为用户u3和u4,则用户u3和u4为风险用户。
[0088]
本实施例中,上述步骤s104和s105可以多次迭代,比如:若步骤s105中,新整体风险分值小于或者等于初始整体风险分值时,重复步骤s104和s105,直至新整体风险分值大于初始整体风险分值,结束迭代。或者,当异常风险分值矩阵中,行或者列不为零的数量小于或等于2的时候(表示图不存在),则停止以上迭代。
[0089]
本实施例还提供一种基于超图的密集子图检测装置200,如图2所示,包括:
[0090]
特征序列获取模块201,用于获取多个用户的特征序列,所述特征序列中包括至少两种特征类型,且各用户的特征序列中的特征类型相同;
[0091]
异常风险分值矩阵获取模块202,用于根据各特征共同出现的次数以及用户总数,获取各特征的异常风险分值,从而得到异常风险分值矩阵;其中,若特征仅出现一次,则对应的异常风险分值为0;
[0092]
初始整体风险分值获取模块203,用于计算所述异常风险分值矩阵的整体风险分值,得到初始整体风险分值;
[0093]
异常风险分值矩阵更新模块204,用于计算所述异常风险分值矩阵各行的和值,将最小且不为0的和值对应的行全部赋值为0,第一次更新所述异常风险分值矩阵;然后,将第一次更新后的所述异常风险分值矩阵中只有一个数值不为0的列全部赋值为0,第二次更新所述异常风险分值矩阵;
[0094]
风险用户确定模块205,用于计算第二次更新得到的异常风险分值矩阵的整体风险分值,得到新整体风险分值,若所述新整体风险分值大于所述初始整体风险分值,则计算所述异常风险分值矩阵各行的和值,确定和值不为0的用户为风险用户。
[0095]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将所述基于超图的密集子图检测装置200的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述中各功能模块的具体工作过程,可以参考前述基于超图的密集子图检测方法实施例中的对应过程,在此不再赘述。
[0096]
图3是本技术实施例三提供的终端设备的结构示意图。如图3所示,终端设备300包括:处理器302、存储器301以及存储在存储器301中并可在处理器302上运行的计算机程序303。处理器302的个数是至少一个,图3以一个为例。处理器302执行计算机程序303时实现上述基于超图的密集子图检测方法的实现步骤,即图1所示的步骤。
[0097]
终端设备300的具体实现过程可以参见上文中的基于超图的密集子图检测方法实施例。
[0098]
示例性的,计算机程序303可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在存储器301中,并由处理器302执行,以完成本技术。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序303在终端设备300中的执行过程。
[0099]
终端设备300可以是桌上型计算机、笔记本、掌上电脑、主控等计算设备,也可以是手机等移动终端。终端设备300可包括,但不仅限于,处理器以及存储器。本领域技术人员可以理解,图3仅是终端设备300的示例,并不构成对终端设备300的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备300还可以包括输入输出设备、网络接入设备、总线等。
[0100]
处理器302可以是cpu(central processing unit,中央处理单元),还可以是其他通用处理器、dsp(digital signal processor,数字信号处理器)、asic(application specific integrated circuit,专用集成电路)、fpga(field-programmable gate array,现成可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0101]
存储器301可以是终端设备300的内部存储单元,例如硬盘或内存。存储器301也可
以是终端设备300的外部存储设备,例如终端设备300上配备的插接式硬盘、smc(smart media card,智能存储卡)、sd卡(secure digital,安全数字卡)、flash card(闪存卡)等。进一步地,存储器301还可以既包括终端设备300的内部存储单元也包括外部存储设备。存储器301用于存储操作系统、应用程序、引导装载程序、数据以及其他程序等,例如所述计算机程序303的程序代码等。存储器301还可以用于暂时地存储已经输出或者将要输出的数据。
[0102]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上文中的基于超图的密集子图检测方法实施例中的步骤。
[0103]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述基于超图的密集子图检测方法实施例中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述计算机程序303可存储于一计算机可读存储介质中,该计算机程序303在被处理器302执行时,可实现上述基于超图的密集子图检测方法实施例的步骤。其中,所述计算机程序303包括计算机程序代码,所述计算机程序303代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、rom(read-only memory,只读存储器)、ram(random access memory,随机存取存储器)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
[0104]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0105]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0106]
在本技术所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0107]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0108]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:
[0109]
其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献