首页 / 专利库 / 电脑编程 / 算法 / 期望最大化算法 / 一种基于有监督学习和无监督学习的反欺诈方法

一种基于有监督学习无监督学习的反欺诈方法

阅读:197发布:2020-05-13

专利汇可以提供一种基于有监督学习无监督学习的反欺诈方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于有 监督学习 和 无监督学习 的反欺诈方法,具体步骤如下:数据预处理,数据转换,创建高斯混合模型,期望最大化 算法 ,有监督学习,无监督学习,预测,该基于有监督学习和无监督学习的反欺诈方法使用有监督学习和无监督学习结合的方法来建立反欺诈模型,有监督学习模型和无监督学习模型被包含在一个大的模型中,这个大的模型将达到集成模型的效果,预测的结果将会优于单独考虑有监督学习或无监督学习时的效果,而且有监督学习和无监督学习是互补的,两种学习方式结合将可以检测出已知的欺诈模式和未知的欺诈模式。,下面是一种基于有监督学习无监督学习的反欺诈方法专利的具体信息内容。

1.一种基于有监督学习无监督学习的反欺诈方法,其特征在于,具体步骤如下:
步骤一:数据预处理;本发明输入的数据是数值型的数据,非数值型的数据需要被转成数值型的数据,之后所有的输入数据会被标准化,比如说可以用scikit-learn的
StandardScaler对数据进行标准化;
步骤二:数据转换;一般情况下输入数据的各个特征之间会有一定的相互关联关系,本发明需要使用主成分分析(PCA)的方法对输入数据进行转换,转换后的数据的各个列之间将不再有关联关系,转换后的数据仍记为X;
步骤三:创建高斯混合模型;本发明的目标是对转换后的数据的每一列建立对应的高斯混合模型,高斯混合模型记为:
其中xi为数据的第i行, 为模型的参数,高斯混合模型包含k个成
分,每个成分都是一个独立的高斯单变量分布,因为每个高斯混合模型只是针对数据集X中的一个列,所以它的成分只需要高斯单变量分布,即:
而且, 每个变量ωj是第j个成分
在混合模型中的权重,现在给每个数据点xi附加一个隐性变量zi,zi的取值范围为{1,
2,...,k},即zi=2表示的是数据点xi是第2个成分生成的,zi=j表示的是数据点xi是第j个成分生成的,那么对于任意的θ,有:
根据公式(2)及贝叶斯公式可得:
上式表示的是数据点xi是第j个成分生成的概率,定义γij=p(zi=j|xi,θ);
步骤四:期望最大化算法;模型确定好之后,需要对模型的参数进行估计,这一步中将使用最大似然参数估计的方法,一般情况下都会使用对数似然函数:
根据全概率公式:
公式(3)可写为:
公式(4)中包含和的对数,对公式(4)求极大似然估计没有解析解,只能通过迭代的方法求解,这个步骤采用期望最大化(EM)算法来计算目标函数L(θ)的最大值,EM算法是一个迭代算法,主要包括E步(Expectation)和M步(Maximization),经过推导(4)式可变为以下的求最大值问题:
θ(m+1)=argmaxθE[logP(x,z|θ)x,θ(m)]       (5)
其中,θ(m)表示的是第m次迭代后得到的参数估计值,经过(5)式的计算将会得到第m+1次迭代后的参数值θ(m+1),定义一个Q函数:
Q(θ|θ(m))=E[logP(x,z|θ)|x,θ(m)]
那么第i个数据点xi的Q函数为:
上面的推导用到了γij的定义以及公式(2),所以所有数据点的Q函数为:
推导出Q函数的公式后,即可以列出EM算法的主要步骤,如下:
①:初始化,在迭代还没开始的时候,把参数m的值设为0,参数m可以看作是迭代的次数,同时需要设置模型参数 的初始值,这里θ(0)即表示第
0次迭代后的模型参数值;
(m)
②:E步,根据当前模型的参数值θ ,需要计算成分j对数据xi的响应度
以上公式已在步骤三给出;
③:M步,根据Q函数的定义,在每次迭代中,需要去寻找参数θ的值使得Q函数的值最大化,即:
也就是说在M步中,需要求得函数Q(θ|θ(m))对参数θ的最大值,为了取得最优的μj,需要对μj求偏导数并令其为零,即:
把公式(6)带入上式并求解得到:
同样的要求得最优的σj,需要计算以下公式:
把公式(6)带入并求解得到:
计算最优的ωj的公式为:
M步结束后,将会得到迭代后新的参数值
④:循环,重复②和③,即E步和M步交替计算,注意在M步结束后参数m会自增1,即m=m+
1,当迭代收敛到一个预设的阈值时循环将结束;
当①到④执行结束后,高斯混合模型的所有参数即计算完成,也完成了对一个高斯混合模型的训练;
步骤五:有监督学习;有监督学习需要有标注的历史数据,假设历史数据为一个矩阵X,并且假设矩阵X中的每行已经被标注,正常交易记为0,异常交易记为1,标注的信息保存在X的其中一列中,现在把矩阵X根据标注信息拆为两个矩阵X0和X1,X0包含所有的正常交易,而X1包含所有的异常交易,假设矩阵X有n列,那么X0和X1也各有n列,现在把X0和X1分别拆为n个单列的矩阵,分别记为X01,X02,…,X0n和X11,X12,…,X1n,这样矩阵X就被拆分成2n个单列矩阵,现在需要对每个单列矩阵X01,X02,…,X0n,X11,X12,…,X1n创建一个独立的高斯混合模型,并对每个模型用EM算法进行训练,这样一共需要创建2n个模型,伪代码如下:
算法1:有监督学习高斯混合模型,
算法1中,第2-3行是两个循环,一共循环了2n次,每次循环都会在第4行创建一个高斯混合模型(对应于步骤三),并在第5行对高斯混合模型进行训练(对应于步骤四),训练的数据是一个单列矩阵Xij,所以说算法1创建并训练了2n个高斯混合模型,并把步骤三和步骤四循环了2n次,训练好的模型保存在数组models中;
步骤六:无监督学习;假设有一些没有标注过的历史数据,记为X’,因为这些数据是没有标注过的,所以没有办法区分好坏样本,假设矩阵X’有m列,现在把X’拆为m个单列的矩阵X′1,X′2,...,X′m,与步骤五类似,对每个单列矩阵创建一个高斯混合模型,这样在步骤六中一共有m个模型,伪代码如下:
算法2:无监督学习高斯混合模型,
算法2与算法1相似,算法2有一个循环,一共循环了m次,每个循环都会执行步骤三和步骤四,创建并训练一个高斯混合模型,这样一共有m个模型,训练好的模型放在数组model2中;
步骤七:预测;首先来看一下有监督学习的预测,当新的交易数据X(new)产生时,需要对新数据的类别进行预测,也就是说当给定数据时,需要计算后验概率P(y|X(new)),其中y={0,1}为类别,y=0为好样本,y=1为坏样本,根据贝叶斯定理:
所以要计算后验概率,需要计算先验概率P(y),条件概率P(X(new)|y),以及P(X(new))。先验概率P(y)可由专家经验给出,或者按照好坏样本的比例计算,计算条件概率时,可以用朴素贝叶斯。在步骤五中,数据有n列,这里假设新数据X(new)与训练数据一致也有n列,记为因为在步骤二中,数据已经进行转换,转换后的数据的
各列是独立的,所以可以应用朴素贝叶斯公式:
公式(7)变为:
其中 一共2n个概率
可由步骤五训练好的2n个模型计算得到,而 可由全概
率公式计算得到,由(8)式计算得到的后验概率即为有监督学习的预测值,由于无监督学习中的数据没有标注好坏样本,所以不能再用(8)式计算,只能应用朴素贝叶斯公式计算:
注意上式中i=1,2,…,m,因为步骤六假设无监督学习的训练数据有m列。因为高斯混合模型是生成模型,所以可以把P(X(new2))看作是新数据X(new2)是由高斯混合模型生成的概率,当有些新数据的计算得到的概率很低时,可以把这些数据点作为离群点,即异常交易。
2.先验概率P(y)可由专家经验给出,或者按照好坏样本的比例计算,计算条件概率时,可以用朴素贝叶斯。
3.在步骤五中,数据有n列,这里假设新数据 与训练数据一致也有n列,记为
, ,…, ,因为在步骤二中,数据已经进行转换,转换后的数据的各列
是独立的,所以可以应用朴素贝叶斯公式:
公式(7)变为:
  (8)
其中 ,一共2n个概
率可由步骤五训练好的2n个模型计算得到,而 可由全
概率公式计算得到,由(8)式计算得到的后验概率即为有监督学习的预测值,由于无监督学习中的数据没有标注好坏样本,所以不能再用(8)式计算,只能应用朴素贝叶斯公式计算:
注意上式中i=1,2,…,m,因为步骤六假设无监督学习的训练数据有m列。
4.因为高斯混合模型是生成模型,所以可以把 看作是新数据 是由
高斯混合模型生成的概率,当有些新数据的计算得到的概率很低时,可以把这些数据点作为离群点,即异常交易。
5.根据权利要求1所述的一种基于有监督学习和无监督学习的反欺诈方法,其特征在于:所述步骤七中,当得到有监督学习和无监督学习的预测结果后,可以建立规则模型、线性模型或集成模型把预测结果综合得到最后的输出结果。
6.一种基于有监督学习和无监督学习的反欺诈计算机设备,包括存储器,处理器,以及存储于存储器上并可在处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现上述权利要求1至2中任一所述方法的步骤。
7.一种基于有监督学习和无监督学习的反欺诈计算机设备存储介质,其上存储有计算机程序,其特征在于:所述程序被处理器执行时实现上述权利要求1至2中任一所述方法的步骤。

说明书全文

一种基于有监督学习无监督学习的反欺诈方法

技术领域

[0001] 本发明是一种基于有监督学习和无监督学习的反欺诈方法,属于反欺诈技术领域。

背景技术

[0002] 在金融领域的大量订单或交易中,存在着正常的数据和很小一部分的不正常的有欺诈性质的数据,如何从大量的即时金融交易中检测出有欺诈性质的交易并及时的处理是一个很重要的工作,而机器学习的方法已经大量的应用与反欺诈的模型中,机器学习的算法可以大致的被分类为有监督学习的方法和无监督学习的方法,而有监督学习和无监督学习的方法在反欺诈的应用中有各自的优缺点。
[0003] 有监督学习的算法依赖于历史数据,而且这些历史数据是需要被标注的,也就是说每个历史交易需要被标注为正常交易或异常(欺诈) 交易,有监督学习的算法会对这些有标注的历史数据进行学习,并把学习的结果保存在模型中,当有新的交易生成时,被训练好的有监督学习模型可以对新的交易进行预测,计算出新的交易属于异常交易的概率或可能性。有监督学习的方法存在的问题是,有监督学习对历史数据中的好样本和坏样本进行学习,发现其中的规律和模式,然后基于这些模式对新产生的交易进行分类,也就是说有监督学习只能去匹配历史数据中存在的模式,当有新的欺诈模式出现时,由于有监督学习没有事先从历史数据中学习到这种模式,有监督学习将无法检测到这种新型的欺诈模式。
[0004] 有监督学习的这个弱点可以用无监督学习来弥补,无监督学习不需要对历史数据进行标注,而是直接去分析历史数据的分布,而无监督学习的一个假设是,当交易数据的分布中出现离群值时,这个离群值将会属于欺诈交易。无监督学习将可以用于发现未知的欺诈模式,因为无监督学习并不依赖于标注的历史数据。
[0005] 所以说在反欺诈的应用中,有监督学习和无监督学习的方法是互补的,有监督学习用于发现已有的欺诈模式,而无监督学习用于检测新型的欺诈模式;
[0006] 为此,本发明提出一种基于有监督学习和无监督学习的反欺诈方法。

发明内容

[0007] 针对现有技术存在的不足,本发明目的是提供一种基于有监督学习和无监督学习的反欺诈方法,使用有监督学习和无监督学习结合的方法来建立反欺诈模型,有监督学习模型和无监督学习模型被包含在一个大的模型中,这个大的模型将达到集成模型的效果,预测的结果将会优于单独考虑有监督学习或无监督学习时的效果,而且有监督学习和无监督学习是互补的,两种学习方式结合将可以检测出已知的欺诈模式和未知的欺诈模式。
[0008] 为实现上述目的,本发明提供如下技术方案:一种基于有监督学习和无监督学习的反欺诈方法,具体步骤如下:
[0009] 步骤一:数据预处理;本发明输入的数据是数值型的数据,非数值型的数据需要被转成数值型的数据,之后所有的输入数据会被标准化,比如说可以用scikit-learn的StandardScaler对数据进行标准化;
[0010] 步骤二:数据转换;一般情况下输入数据的各个特征之间会有一定的相互关联关系,本发明需要使用主成分分析(PCA)的方法对输入数据进行转换,转换后的数据的各个列之间将不再有关联关系,转换后的数据仍记为X;
[0011] 步骤三:创建高斯混合模型;本发明的目标是对转换后的数据的每一列建立对应的高斯混合模型,高斯混合模型记为:
[0012]
[0013] 其中xi为数据的第i行, 为模型的参数,高斯混合模型包含k个成分,每个成分都是一个独立的高斯单变量分布,因为每个高斯混合模型只是针对数据集X中的一个列,所以它的成分只需要高斯单变量分布,即:
[0014] 而且, 每个变量ωj是第j个成分在混合模型中的权重,现在给每个数据点xi附加一个隐性变量zi,zi的取值范围为{1,
2,...,k},即zi=2表示的是数据点xi是第2个成分生成的,zi=j表示的是数据点xi是第j个成分生成的,那么对于任意的θ,有:
[0015]
[0016] 根据公式(2)及贝叶斯公式可得:
[0017]
[0018] 上式表示的是数据点xi是第j个成分生成的概率,定义γij=p(zi=j|xi,θ);
[0019] 步骤四:期望最大化算法;模型确定好之后,需要对模型的参数进行估计,这一步中将使用最大似然参数估计的方法,一般情况下都会使用对数似然函数:
[0020]
[0021] 根据全概率公式:
[0022]
[0023] 公式(3)可写为:
[0024]
[0025] 公式(4)中包含和的对数,对公式(4)求极大似然估计没有解析解,只能通过迭代的方法求解,这个步骤采用期望最大化(EM)算法来计算目标函数L(θ)的最大值,EM算法是一个迭代算法,主要包括E步(Expectation)和M步(Maximization),经过推导(4)式可变为以下的求最大值问题:
[0026] θ(m+1)=argmaxθE[logP(x,z|θ)|x,θ(m)]   (5)
[0027] 其中,θ(m)表示的是第m次迭代后得到的参数估计值,经过(5) 式的计算将会得到第m+1次迭代后的参数值θ(m+1),定义一个Q函数:
[0028] Q(θ|θ(m))=E[logP(x,z|θ)|x,θ(m)]
[0029] 那么第i个数据点xi的Q函数为:
[0030]
[0031] 上面的推导用到了γij的定义以及公式(2),所以所有数据点的Q 函数为:
[0032]
[0033] 推导出Q函数的公式后,即可以列出EM算法的主要步骤,如下:
[0034] ①:初始化,在迭代还没开始的时候,把参数m的值设为0,参数 m可以看作是迭代的次数,同时需要设置模型参数 的初始值,这里θ(0)即表示第0次迭代后的模型参数值;
[0035] ②:E步,根据当前模型的参数值θ(m),需要计算成分j对数据xi的响应度[0036]
[0037] 以上公式已在步骤三给出;
[0038] ③:M步,根据Q函数的定义,在每次迭代中,需要去寻找参数θ的值使得Q函数的值最大化,即:
[0039]
[0040] 也就是说在M步中,需要求得函数Q(θ|θ(m))对参数θ的最大值,为了取得最优的μj,需要对μj求偏导数并令其为零,即:
[0041]
[0042] 把公式(6)带入上式并求解得到:
[0043]
[0044] 同样的要求得最优的σj,需要计算以下公式:
[0045]
[0046] 把公式(6)带入并求解得到:
[0047]
[0048] 计算最优的ωj的公式为:
[0049]
[0050] M步结束后,将会得到迭代后新的参数值
[0051] ④:循环,重复②和③,即E步和M步交替计算,注意在M步结束后参数m会自增1,即m=m+1,当迭代收敛到一个预设的阈值时循环将结束;
[0052] 当①到④执行结束后,高斯混合模型的所有参数即计算完成,也完成了对一个高斯混合模型的训练;
[0053] 步骤五:有监督学习;有监督学习需要有标注的历史数据,假设历史数据为一个矩阵X,并且假设矩阵X中的每行已经被标注,正常交易记为0,异常交易记为1,标注的信息保存在X的其中一列中,现在把矩阵X根据标注信息拆为两个矩阵X0和X1,X0包含所有的正常交易,而X1包含所有的异常交易,假设矩阵X有n列,那么X0和X1也各有n列,现在把X0和X1分别拆为n个单列的矩阵,分别记为X01,X02,…,X0n和X11, X12,…,X1n,这样矩阵X就被拆分成2n个单列矩阵,现在需要对每个单列矩阵X01,X02,…,X0n,X11,X12,…,X1n创建一个独立的高斯混合模型,并对每个模型用EM算法进行训练,这样一共需要创建2n个模型,伪代码如下:
[0054] 算法1:有监督学习高斯混合模型,
[0055]
[0056] 算法1中,第2-3行是两个循环,一共循环了2n次,每次循环都会在第4行创建一个高斯混合模型(对应于步骤三),并在第5行对高斯混合模型进行训练(对应于步骤四),训练的数据是一个单列矩阵Xij,所以说算法1创建并训练了2n个高斯混合模型,并把步骤三和步骤四循环了2n次,训练好的模型保存在数组models中;
[0057] 步骤六:无监督学习;假设有一些没有标注过的历史数据,记为 X’,因为这些数据是没有标注过的,所以没有办法区分好坏样本,假设矩阵X’有m列,现在把X’拆为m个单列的矩阵X′1,X′2,...,X′m,与步骤五类似,对每个单列矩阵创建一个高斯混合模型,这样在步骤六中一共有m个模型,伪代码如下:
[0058] 算法2:无监督学习高斯混合模型,
[0059]
[0060] 算法2与算法1相似,算法2有一个循环,一共循环了m次,每个循环都会执行步骤三和步骤四,创建并训练一个高斯混合模型,这样一共有m个模型,训练好的模型放在数组model2中;
[0061] 步骤七:预测;首先来看一下有监督学习的预测,当新的交易数据X(new)产生时,需要对新数据的类别进行预测,也就是说当给定数据时,需要计算后验概率P(y|X(new)),其中y={0,1}为类别,y=0为好样本,y=1为坏样本,根据贝叶斯定理:
[0062]
[0063] 所以要计算后验概率,需要计算先验概率P(y),条件概率 P(X(new)|y),以及P(X(new)),先验概率P(y)可由专家经验给出,或者按照好坏样本的比例计算。计算条件概率时,可以用朴素贝叶斯。在步骤五中,数据有n列,这里假设新数据X(new)与训练数据一致也有n列,记为 因为在步骤二中,数据已经进行转换,转换后的数据的各列是独立的,所以可以应用朴素贝叶斯公式:
[0064]
[0065] 公式(7)变为:
[0066]
[0067] 其中 一共2n个概率可由步骤五训练好的2n个模型计算得到,而 可由
全概率公式计算得到,由(8)式计算得到的后验概率即为有监督学习的预测值。由于无监督学习中的数据没有标注好坏样本,所以不能再用(8)式计算,只能应用朴素贝叶斯公式计算:
[0068]
[0069] 注意上式中i=1,2,…,m,因为步骤六假设无监督学习的训练数据有m列。因为高斯混合模型是生成模型,所以可以把P(X(new2))看作是新数据X(new2)是由高斯混合模型生成的概率。当有些新数据的计算得到的概率很低时,可以把这些数据点作为离群点,即异常交易。
[0070] 一实施例中:所述步骤七中,当得到有监督学习和无监督学习的预测结果后,可以建立规则模型、线性模型或集成模型把预测结果综合得到最后的输出结果。
[0071] 为达上述目的,本发明还提供一种基于有监督学习和无监督学习的反欺诈计算机设备,包括存储器,处理器,以及存储于存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1至2中任一所述方法的步骤。
[0072] 为达上述目的,本发明还提供一种基于有监督学习和无监督学习的反欺诈计算机设备存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述权利要求1至2中任一所述方法的步骤。
[0073] 采用上述技术方案后,一方面,使用有监督学习和无监督学习结合的方法来建立反欺诈模型,有监督学习模型和无监督学习模型被包含在一个大的模型中,这个大的模型将达到集成模型的效果,预测的结果将会优于单独考虑有监督学习或无监督学习时的效果,而且有监督学习和无监督学习是互补的,两种学习方式结合将可以检测出已知的欺诈模式和未知的欺诈模式;
[0074] 另一方面,在步骤四中,推导出了期望最大化(EM)算法的具体计算公式,从步骤四中可以看出,最后的公式很容易用编程语言实现,而且当这个算法实现后,能够根据具体的应用场景对算法进行改进,比如说步骤三和步骤四的每次迭代都是需要全量数据输入进行计算,但是当数据量非常大时,一次迭代需要的时间将会非常的长,这时可以对现有的EM算法进行改进,每次迭代只输入一个批次(batch)的数据,这样可以在保证计算准确度的情况下,大大提高计算速度。附图说明
[0075] 图1为本发明一种基于有监督学习和无监督学习的反欺诈方法的具体步骤流程图

具体实施方式

[0076] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0077] 请参阅图1,本发明提供一种基于有监督学习和无监督学习的反欺诈方法,具体步骤如下:
[0078] 步骤一:数据预处理;本发明输入的数据是数值型的数据,非数值型的数据需要被转成数值型的数据,之后所有的输入数据会被标准化,比如说可以用scikit-learn的StandardScaler对数据进行标准化;
[0079] 步骤二:数据转换;一般情况下输入数据的各个特征之间会有一定的相互关联关系,本发明需要使用主成分分析(PCA)的方法对输入数据进行转换,转换后的数据的各个列之间将不再有关联关系,转换后的数据仍记为X;
[0080] 步骤三:创建高斯混合模型;本发明的目标是对转换后的数据的每一列建立对应的高斯混合模型,高斯混合模型记为:
[0081]
[0082] 其中xi为数据的第i行, 为模型的参数,高斯混合模型包含k个成分,每个成分都是一个独立的高斯单变量分布,因为每个高斯混合模型只是针对数据集X中的一个列,所以它的成分只需要高斯单变量分布,即:
[0083] 而且, 每个变量ωj是第j个成分在混合模型中的权重,现在给每个数据点xi附加一个隐性变量zi,zi的取值范围为{1,
2,...,k},即zi=2表示的是数据点xi是第2个成分生成的,zi=j表示的是数据点xi是第j个成分生成的,那么对于任意的θ,有:
[0084]
[0085] 根据公式(2)及贝叶斯公式可得:
[0086]
[0087] 上式表示的是数据点xi是第j个成分生成的概率,定义γij=p(zi=j|xi,θ);
[0088] 步骤四:期望最大化算法;模型确定好之后,需要对模型的参数进行估计,这一步中将使用最大似然参数估计的方法,一般情况下都会使用对数似然函数:
[0089]
[0090] 根据全概率公式:
[0091]
[0092] 公式(3)可写为:
[0093]
[0094] 公式(4)中包含和的对数,对公式(4)求极大似然估计没有解析解,只能通过迭代的方法求解,这个步骤采用期望最大化(EM)算法来计算目标函数L(θ)的最大值,EM算法是一个迭代算法,主要包括 E步(Expectation)和M步(Maximization),经过推导(4)式可变为以下的求最大值问题:
[0095] θ(m+1)=argmaxθE[logP(x,z|θ)|x,θ(m)]   (5)
[0096] 其中,θ(m)表示的是第m次迭代后得到的参数估计值,经过(5) 式的计算将会得到(m+1)第m+1次迭代后的参数值θ ,定义一个Q函数:
[0097] Q(θ|θ(m))=E[logP(x,z|θ)|x,θ(m)]
[0098] 那么第i个数据点xi的Q函数为:
[0099]
[0100]
[0101] 上面的推导用到了γij的定义以及公式(2),所以所有数据点的Q 函数为:
[0102]
[0103] 推导出Q函数的公式后,即可以列出EM算法的主要步骤,如下:
[0104] ①:初始化,在迭代还没开始的时候,把参数m的值设为0,参数 m可以看作是迭代的次数,同时需要设置模型参数 的初始值,这里θ(0)即表示第0次迭代后的模型参数值;
[0105] ②:E步,根据当前模型的参数值θ(m),需要计算成分j对数据xi的响应度[0106]
[0107] 以上公式已在步骤三给出;
[0108] ③:M步,根据Q函数的定义,在每次迭代中,需要去寻找参数θ的值使得Q函数的值最大化,即:
[0109]
[0110] 也就是说在M步中,需要求得函数Q(θ|θ(m))对参数θ的最大值,为了取得最优的μj,需要对μj求偏导数并令其为零,即:
[0111]
[0112] 把公式(6)带入上式并求解得到:
[0113]
[0114] 同样的要求得最优的σj,需要计算以下公式:
[0115]
[0116] 把公式(6)带入并求解得到:
[0117]
[0118] 计算最优的ωj的公式为:
[0119]
[0120] M步结束后,将会得到迭代后新的参数值
[0121]
[0122] ④:循环,重复②和③,即E步和M步交替计算,注意在M步结束后参数m会自增1,即m=m+1,当迭代收敛到一个预设的阈值时循环将结束;
[0123] 当①到④执行结束后,高斯混合模型的所有参数即计算完成,也完成了对一个高斯混合模型的训练;
[0124] 步骤五:有监督学习;有监督学习需要有标注的历史数据,假设历史数据为一个矩阵X,并且假设矩阵X中的每行已经被标注,正常交易记为0,异常交易记为1,标注的信息保存在X的其中一列中,现在把矩阵X根据标注信息拆为两个矩阵X0和X1,X0包含所有的正常订单,而X1包含所有的异常订单,假设矩阵X有n列,那么X0和X1也各有n列,现在把X0和X1分别拆为n个单列的矩阵,分别记为X01,X02,…,X0n和X11, X12,…,X1n,这样矩阵X就被拆分成2n个单列矩阵,现在需要对每个单列矩阵X01,X02,…,X0n,X11,X12,…,X1n创建一个独立的高斯混合模型,并对每个模型用EM算法进行训练,这样一共需要创建2n个模型,伪代码如下:
[0125] 算法1:有监督学习高斯混合模型,
[0126]
[0127] 算法1中,第2-3行是两个循环,一共循环了2n次,每次循环都会在第4行创建一个高斯混合模型(对应于步骤三),并在第5行对高斯混合模型进行训练(对应于步骤四),训练的数据是一个单列矩阵Xij,所以说算法1创建并训练了2n个高斯混合模型,并把步骤三和步骤四循环了2n次,训练好的模型保存在数组models中;
[0128] 步骤六:无监督学习;假设有一些没有标注过的历史数据,记为 X’,因为这些数据是没有标注过的,所以没有办法区分好坏样本,假设矩阵X’有m列,现在把X’拆为m个单列的矩阵X′1,X′2,...,X′m,与步骤五类似,对每个单列矩阵创建一个高斯混合模型,这样在步骤六中一共有m个模型,伪代码如下:
[0129] 算法2:无监督学习高斯混合模型,
[0130]
[0131] 算法2与算法1相似,算法2有一个循环,一共循环了m次,每个循环都会执行步骤三和步骤四,创建并训练一个高斯混合模型,这样一共有m个模型,训练好的模型放在数组model2中;
[0132] 步骤七:预测;首先来看一下有监督学习的预测,当新的交易数据X(new)产生时,需要对新数据的类别进行预测,也就是说当给定数据时,需要计算后验概率P(y|X(new)),其中y={0,1}为类别,y=0为好样本,y=1为坏样本,根据贝叶斯定理:
[0133]
[0134] 所以要计算后验概率,需要计算先验概率P(y),条件概率 P(X(new)|y),以及P(X(new)),先验概率P(y)可由专家经验给出,或者按照好坏样本的比例计算,计算条件概率时,可以用朴素贝叶斯,在步骤五中,数据有n列,这里假设新数据X(new)与训练数据一致也有n列,记为 因为在步骤二中,数据已经进行转换,转换后的
数据的各列是独立的,所以可以应用朴素贝叶斯公式:
[0135]
[0136] 公式(7)变为:
[0137]
[0138] (8)
[0139] 其中 一共2n个概率可由步骤五训练好的2n个模型计算得到,而 可由
全概率公式计算得到,由(8)式计算得到的后验概率即为有监督学习的预测值,由于无监督学习中的数据没有标注好坏样本,所以不能再用(8)式计算,只能应用朴素贝叶斯公式计算:
[0140]
[0141] 注意上式中i=1,2,…,m,因为步骤六假设无监督学习的训练数据有m列,因为高斯混合模型是生成模型,所以可以把P(X(new2))看作是新数据X(new2)是由高斯混合模型生成的概率,当有些新数据的计算得到的概率很低时,可以把这些数据点作为离群点,即异常交易。
[0142] 本实施例中:所述步骤七中,当得到有监督学习和无监督学习的预测结果后,可以建立规则模型、线性模型或集成模型把预测结果综合得到最后的输出结果。
[0143] 为达上述目的,本发明还提供一种基于有监督学习和无监督学习的反欺诈计算机设备,包括存储器,处理器,以及存储于存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1至2中任一所述方法的步骤。
[0144] 为达上述目的,本发明还提供一种基于有监督学习和无监督学习的反欺诈计算机设备存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述权利要求1至2中任一所述方法的步骤。
[0145] 进一步的,本发明使用的编程语言是Python,步骤二中的主成分分析可以使用scikit-learn包中的decomposition.PCA类,步骤三中的高斯混合模型可以使用scikit-learn包中的 mixture.GaussianMixture类,这个类中的一个重要的参数是n_components,即混合模型是由多少个成分合成的,参数 n_components是一个超参数,需要手动调整或者使用超参数寻找,参数n_components的值设得太高将会过拟合,而且计算时间会变长。
[0146] 进一步的,所述步骤四是期望最大化算法,①的模型参数初始化可以使用随机值,但是EM算法对初始值的设置很敏感,最好使用 k-means算法计算参数的初始值,k-means算法可以使用 scikit-learn包中的cluster.KMeans类,②和③可以根据步骤四中列出的公式实 现 ,可以 使 用nu mp y包 来优 化计 算速 度 ,当然 ②和 ③也 可以 用mixture.GaussianMixture类中内置的算法实现,但是用 scikit-learn中现有的方法将很难对EM算法进行改进。
[0147] 进一步的,所述步骤五的有监督学习和步骤六的无监督学习都是对步骤三和步骤四的循环。
[0148] 进一步的,在步骤七中,数据在每个高斯混合模型中的条件概率可以用mixture.GaussianMixture类中的score_samples方法计算得到,注意score_samples计算的是概率的对数,在步骤七中当有需要计算和的对数的时候可以使用scipy包里的special.logsumexp方法。
[0149] 采用上述技术方案后,一方面,使用有监督学习和无监督学习结合的方法来建立反欺诈模型,有监督学习模型和无监督学习模型被包含在一个大的模型中,这个大的模型将达到集成模型的效果,预测的结果将会优于单独考虑有监督学习或无监督学习时的效果,而且有监督学习和无监督学习是互补的,两种学习方式结合将可以检测出已知的欺诈模式和未知的欺诈模式;另一方面,在步骤四中,推导出了期望最大化(EM)算法的具体计算公式,从步骤四中可以看出,最后的公式很容易用编程语言实现,而且当这个算法实现后,能够根据具体的应用场景对算法进行改进,比如说步骤三和步骤四的每次迭代都是需要全量数据输入进行计算,但是当数据量非常大时,一次迭代需要的时间将会非常的长,这时可以对现有的EM算法进行改进,每次迭代只输入一个批次(batch)的数据,这样可以在保证计算准确度的情况下,大大提高计算速度。
[0150] 此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈