基于生成式对抗网络和半监督学习的个人信用确定方法与流程

文档序号:17606525发布日期:2019-05-07 20:46阅读:190来源:国知局
基于生成式对抗网络和半监督学习的个人信用确定方法与流程
本发明属于计算机
技术领域
,特别是涉及一种基于生成式对抗网络和半监督学习的个人信用确定方法。
背景技术
:银行信贷业务是银行的一项重要业务,该业务会因客户的信用度及违约状况而存在一定的风险。如果我们能够预测客户的违约风险就可以最大程度的降低银行信贷业务的风险。数据挖掘技术可以很好的解决这一问题。将机器学习技术运用到银行客户信用评估,在庞大的数据中将看似无关联的数据进行筛选和净化,提取出有价值的信息,对客户贷款申请做出恰当的回应。数据挖掘是信息技术发展的必然结果,它是指通过挖掘算法从大量数据中抽取挖掘出隐含在其中的有价值的模式或规律等信息的复杂过程。随着信用行业的发展以及贷款组合种类的不断增加,人们利用大量信用数据积极探索开发更加准确的信用评估方法,但目前信用数据的价值量极高,获取信用数据的手段单一,使得获取信用数据十分耗时耗力,并且进行信用评估时需要手工标注大量的信用数据,非常耗时和昂贵。半监督学习(semi-supervisedlearning)是近年来机器学习领域的研究热点,它的基本原则就是通过大量无标签数据辅助少量已标记数据进行学习,从而提高学习效果。半监督学习方法的提出一方面是因为理论上无标签数据确实有可能提高学习效果;另一方面则是因为有的监督学习方法只能利用已有标签数据进行训练,且为了保证学习的泛化性,监督学习方法还通常需要假设已经具有足够的已标记样本。然而,实际应用中已标记数据的获取一般都比较困难,耗时、耗力且通常都需要丰富的专家经验。受博弈论中二元零和博弈的启发,生成式对抗网络(gan)的框架中包含一对相互对抗的模型:判别器和生成器。判别器的目的是正确区分真实数据和生成数据,从而最大化判别准确率;生成器则是尽可能逼近真实数据的潜在分布。为了在博弈中胜出,二者需不断提高各自的判别能力和生成能力,优化的目标就是寻找二者间的纳什均衡。gan框架如图1所示,生成器(点划线框内的多层感知机)的输入是一个来自常见概率分布的随机噪声矢量z,输出是计算机生成的伪数据;判别器(虚线框内的多层感知机)的输入是图片x(x可能采样于真实数据,也可能采样于生成数据),输出是一个标量,用来代表x是真实图片的概率,即当判别器认为x是真实图片时输出1,反之输出0。判别器和生成器不断优化,当判别器无法正确区分数据来源时,可以认为生成器捕捉到真实数据样本的分布。图1中,生成模型的初始输入为随机噪声z,生成模型为一个神经网络,随机噪声经过生成模型的加工,产生初始的伪造数据,该过程由于没有任何判别器的参与,因而产生的数据与真实数据相似程度较低。此时固定生成器,对判别器进行训练。判别器的输入为混合的真实数据x与生成模型的输出数据g(z),判别器对输入数据进行二分类,即判别数据的真伪,若认为输入数据来源于真实样本,则标记为1,否则标记为0。训练完成时,得到判别器的判别损失,并将该损失分别返回给生成器及判别器。此时固定判别器,训练生成器。如此进行反复迭代。最终生成器的判别能力达到一定水平,且生成器生成的数据在判别器上的表现与真实样本一致时,即判别器无法判断该样本来源,训练结束。此时我们认为生成模型生成的数据接近于真实数据分布。基于机器学习的信用评估方法层出不穷,其目的在于采用机器学习技术来辅助银行评估个人信用,规避和降低带给商业银行的信用风险。由于信用评估中已标记信用数据的获取通常都耗时耗力,因此对于大量未标记信用数据而言,已标记的信用数据有限,尤其是我国的消费信贷发展历史还比较短,这方面的信用数据更是稀少。此外,信用评估中的数据普遍存在正负样本数据不一致导致的数据不对称问题,这主要是因为按时还贷和不能按时还贷的人数通常相差很大造成的。信用数据不平衡导致学习器在对信用数据进行评估时,对比例大的样本造成过拟合,也就是说预测偏向样本数较多的类别。这样就会大大降低模型的范化能力。如果在个人信用评估中仅使用相对较少的已标记信用数据,那么利用他们所训练出的信用评估系统往往很难具有强泛化能力;另一方面,仅使用少量昂贵的已标记信用数据却不利用大量相对廉价的未标记信用数据,也是对数据资源的极大浪费。技术实现要素:本发明的目的在于提供一种基于生成式对抗网络和半监督学习的个人信用确定方法,以解决目前已标记信用数据少、信用数据不平衡造成得到的个人信用评估系统泛化能力差的问题和手工标注大量的信用数据耗时耗力的问题。本发明所采用的技术方案是,基于生成式对抗网络和半监督学习的个人信用确定方法,其特征在于,具体步骤如下:步骤s1、将个人信用数据分为有标签个人信用数据和无标签个人信用数据;步骤s2、对有标签个人信用数据的类标依次进行数值化和归一化;步骤s3、对有标签个人信用数据进行数据平衡化;步骤s4、通过重采样方法在有标签个人信用数据中获得不同的样本子集;步骤s5、对采样得到的多个样本子集的数据进行扩充,获得多个训练样本;步骤s6、初始化多个子学习器,并将训练样本分配给子学习器,对子学习器进行优化;步骤s7、利用优化后的子学习器对无标签个人信用数据进行标记;并将标记的个人信用数据置于有标签个人信用数据中对有标签个人信用数据进行一次扩充;步骤s8、对有标签个人信用数据进行二次扩充;步骤s9、对步骤s2~s8进行循环迭代,直到无标签个人信用数据集中的数据不再减少,迭代结束;步骤s10、采用boosting方法对最终优化的子学习器进行集成学习,并将集成得到的学习器用于测试集,确定个人信用度。进一步的,所述步骤s2中对个人信用数据进行数值化采用onehot编码方法。进一步的,所述步骤s2中对个人信用数据进行归一化采用如下公式:其中,xij表示数据归一化处理前第i个有标签个人信用数据的第j个指标值;xij*表示数据归一化处理后第i个有标签个人信用数据的第j个指标值;mj表示第i个信用数据的第j个指标值的最大值,mj表示第i个信用数据的第j个指标值的最小值,进一步的,所述步骤s3对有标签个人信用数据进行数据平衡化、所述步骤s5对采样得到的多个样本子集的数据进行扩充、所述步骤s8对有标签个人信用数据进行二次扩充均采用生成式对抗网络、smote方法或集成学习方法。进一步的,所述步骤s7中对无标签个人信用数据进行标记,是依据各子学习器给出的同一无标签个人信用数据的类标确定。进一步的,所述采用生成式对抗网络对有标签个人信用数据进行数据平衡化是采用生成式对抗网络对有标签个人信用数据中数据量少的类别数据进行扩充,使该类别的数据量与其他类别的数据量相同。进一步的,所述依据各子学习器给出同一无标签个人信用数据的类标标记无标签个人信用数据的实现过程是:子学习器总数t≤3时,当各子学习器给出当前输入的无标签个人信用数据的类标均相同,则该数据为高置信度的个人信用数据,将各子学习器给出的类标分配给该个人信用数据;子学习器总数t>3时,设置阈值进行确定,当给出的当前输入的无标签个人信用数据的类标相同的子学习器数量占学习器总数的比例高于该阈值时,则该个人信用数据为高置信度的个人信用数据,将学习器给出的类标分配给该个人信用数据。进一步的,所述采生成式对抗网络对采样得到的多个样本子集的数据进行扩充具体是:将由生成式对抗网络的生成器生成且判别器判别为真的数据加入到需要扩充的类别中。进一步的,所述步骤s8利用标记的个人信用数据扩充有标签个人信用数据是将从无标签个人信用数据中确定的高置信度的个人信用数据置于有标签个人信用数据中。进一步的于,所述步骤s9中采用boosting方法对最终优化的子学习器进行集成学习,则集成确定的个人信用度为:其中,h(x)表示集成的学习器;t表示子学习器总数;at表示第t个子学习器的权重;ht(x)表示第t个子学习器。本发明的有益效果是,采用少量的已标记信用数据和大量未标记信用数据,基于生成式对抗网络与半监督学习方法确定个人信用度,有效提高确定个人信用的准确度,辅助银行对信贷申请者按时还款的可能性进行全面审核和评估,银行依据审核和评估结果确定接受或者拒绝信贷申请者的信用贷款申请,规避银行信贷业务的风险。在本发明的方法中,gan被优化配置为生成与原始数据集具有相似分布的人工标记集,这种标记集的补偿可以显著提高个人信用评估准确率,进一步提高半监督学习的泛化能力,解决目前已标记信用数据少、信用数据不对称造成训练的个人信用评估系统泛化能力差的问题;针对信用数据中普遍存在的不平衡类,提出了一种基于gan的对于信用不平衡数据的补偿方法来补偿不平衡类;采用半监督学习方法,将自训练与协同训练相结合,显著提高了未标记集预测标签的可靠性;手工标注大量的信用数据是非常耗时和昂贵的,但我们的方法由于其优越的半监督学习性能,能够自动标注信用数据,这对信用数据的挖掘和管理具有重要的价值。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是gan的基本结构和计算流程图;图2是基于生成式对抗网络和半监督学习的个人信用确定方法流程图;图3是credictcard数据集在未采用生成式对抗网络补偿技术的信用样本空间分布结构;图4是german数据集在未采用生成式对抗网络补偿技术的信用样本空间分布结构;图5是credictcard数据集通过本发明的方法补偿缺少类别的数据后的空间分布图;图6是german数据集通通过本发明的方法补偿缺少类别的数据后的空间分布图;图7是本发明的半监督学习加小样本标签分类方法流程图;图8是本发明基于生成式对抗网络与半监督学习的个人信用确定方法与常用的方法利用credictcard数据集评估个人信用的正确率对比图;图9是本发明基于生成式对抗网络与半监督学习的个人信用确定方法与常用的方法利用german数据集评估个人信用的正确率对比图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。由于个人信用数据属于个人隐私数据,目前公开数据集合很少,我们所使用的个人信用数据来源于公开数据库(uci数据库)。用于个人信用评估的个人信息资料可以通过要求信贷申请者填写表格的形式获得,在核定这些个人资料的真实性后,将这些信息转换成由一系列的指标组成的信用数据作为审核其申请的标准。以uci德国信用审核资料为例,信用数据有二十多个指标,分别是credithistory、accountbalance、loanpurpose、loanamount、employmentstatuspersonalinformation、age和job等。基于生成式对抗网络和半监督学习的个人信用评估方法流程如图2和图7所示。我们将个人信用数据集分为两部分,有标签个人信用数据l={(x1,y1),(x2,y2),...,(xl,yl)},无标签个人信用数据u={(xl+1),(xl+2),...,(xl+u)},l<<u,再将无标签个人信用数据划分成训练数据和无标签训练数据,总数据量s=luu,数据类标y={y1,y2…yl}。在获得这些信用数据之后,首先需要对其进行预处理,包括指标的数值化和归一化。所谓数值化就是把定性指标的属性值转换成数值,对于个人信用数据,其中包括大量的离散型数据(比如性别,职业等),对于这些离散型的数据,通过onehot编码方法对其进行数值化处理。以uci日本信用审核资料为例,a1指标的两个属性值a和b,在信用数据集中分别被数值化为0和1。指标归一化则是为了避免某些指标过大而覆盖其他指标。本发明中所有的指标值都被归一化到区间[-100,100],归一化的公式如(1):其中,xij表示数据归一化处理前第i个有标签个人信用数据的第j个指标值;xij*表示数据归一化处理后第i个有标签个人信用数据的第j个指标值;mj表示第i个信用数据的第j个指标值的最大值,mj表示第i个信用数据的第j个指标值的最小值,数据平衡化,采用gan对有标签个人信用数据中数据量少的类别数据进行扩充,使该类别的数据量与其他类别的数据量相同,即将由gan的生成器生成且判别器判别为真的数据加入到需要扩充的类别中,其损失函数为:其中,d表示判别器,g表示生成器;pdata(x)表示真实信用数据的样本分布,x~pdata(x)表示信用数据x满足pdata(x)这个数据分布;pz(z)表示生成信用数据的样本分布,z~pz(z)表示生成的信用数据z满足pz(z)这个数据分布;加入log方便计算,e表示期望,表示生成的信用数据x满足pdata(x)数据分布的期望;表示生成的信用数据z满足pz(z)数据分布的期望;表示最小化生成器的损失,最大化判别器的损失;d(x)为生成器d对信用数据x判断真伪的结果;g(z)为生成数据,用来对数据量少的那部分信用数据进行扩充,使其达到类别平衡。对于学习器1(h1(x))和学习器2(h2(x)),我们采用boosting方法对其进行集成,那么有:其中,h(x)为集成的学习器t表示当前子学习器的排序,t为子学习器总数;at为第t个子学习器的权重,这里我们使用了两个子学习器,故at也对应为a1和a2,a1为子学习器1的权重,a2为子学习器2的权重;初始h1(x)为svm,其损失函数如公式(4a),公式(4b)为h1(x)的损失函数的约束条件;初始h2(x)为knn,其损失函数如公式(5):s.t.yi(wtxi+b)≥1,i=1,2,...,l;(4b)s.t.yi(wtxi+b)≥1与yi(wtxi+b)≥1表示的含义有什么不同?其中||w||2表示w的l2范式,w是超平面的法向量,b是超平面的截距;p(c|x)和p(c|z)是两个条件概率函数,给定信用样本x判别其标签为c的概率值;c表示信用样本x的标签,c∈y表示c是类标y中的一个;p(c|x)给定个人信用x的情况下,判断该条个人信用数据是那个类别的该类。p(c|z)给定个人信用z的情况下,判断该条个人信用数据是那个类别的该类。子学习器1和子学习器2可以是任意的机器学习方法,如可以是svm和knn,也可以是mlp和k-means。将(4a)和(5)带入(3),得到:在个人信用评估中,如果不同的子学习器分类出来同一个信用数据的类标相似度很高,则对该类标采用平权集成(各学习器的权重相同,且各学习器的权重和为1)的方法,得到其伪类标,此时它们被划分到带伪类标的训练集中。这样做的原因是,扩充了有标签的信用数据,使得训练数据扩充,提高个人信用确定方法的泛化能力。对于通过gan生成数据,来进行数据扩充,也可以换成smote方法或者集成学习的方法,进行数据扩充。本发明在子学习器1和子学习器2分类前后均进行gan扩充数据,这是因为原始有标签的个人信用数据少,采用重采样方法获得的样本子集数据量少,首先使用gan生成的数据对样本子集进行扩充,来生成子学习器1和子学习器2;生成子学习器1和子学习器2后,利用生成的子学习器1和子学习器2对无标签个人信用数据进行分类,从无标签个人信用数据中筛选出高置信度的个人信用数据,并对其进行标记,利用标记的高置信度个人信用数据来扩充有标签个人信用数据,使有标签个人信用数据量初步增多,但还没有达到可以生成最优的学习器的数据量,所以又用gan对有标签的个人信用数据进行二次扩充,以便获得最优的学习器。实验数据来源为uci的三个信用审核数据集,包括类别相对平衡的澳大利亚和日本信用数据集和台湾信用数据集以及严重不对称的德国数据集。三个数据集中的信用数据总数分别是690、690、30000和1000;1类的个数分别是307、307、6636和700;2类的个数分别是383、383、23364和300;每个信用数据包含的指标数分别是14、15、23和24.三个数据集都有某些信用数据的指标值缺失,对于缺失值都用常数0代替,信用数据集如表1所示。实验评测采用k折交叉验证(reversek-foldcrossvalidation)的方式。评测性能标准是准确率(accuracy)。在实验证明中我们都选择了100条有标签样本作为训练集。表1个人信用集合信息数据集指标数正信用样本负信用样本合计creditcard2366362336430000german247003001000生成式对抗网络生成数据,是根据数据的样本空间来生成的,在生成有用数据的同时也会产生一部分噪声数据,对于噪声数据我们选择直接抛弃,只保留对我们模型起促进作用的数据。为了验证我们采用生成式对抗网络方法平衡信用数据的可行性,我们选择了creditcard和german这两个不平衡数据集来作为我们的测试数据,其中creditcard正负样本比例约为1:4,german数据集正负样本比例约为2:1。我们采用生成式对抗网络来生成样本比例少的部分,图3、图5分别为credictcard和german在未采用生成式对抗网络补偿技术的信用样本空间分布结构,即不平衡数据空间分布图;图4和图6分别为credictcard和german通过生成式对抗网络补偿缺少类别的数据的空间分布图,即平衡数据的空间分布图。从实验结果可以看出通过我们的方法能明显的改善和修正正负信用样本不平衡问题。如果正负信用样本都缺少而且不平衡,此时我们所提出的基于生成式对抗网络的数据补偿方法,既可以起到扩充有标签训练样本的作用,又可以起到平衡数据的作用,给模型提供足够多的有标签样本,同时还挺高了算法的泛化能力。本发明采用了半监督学习加小样本标签分类方法对小样本个人信用数据进行分类,先通过重采样方法在有标签个人信用数据中获得不同的样本子集;然后对采样得到的多个样本子集的数据用gan进行扩充,获得多个训练样本;并将训练样本分配给子学习器,对子学习器进行优化;利用优化后的子学习器对无标签个人信用数据进行标记,并将标记的个人信用数据置于有标签个人信用数据中对有标签个人信用数据进行一次扩充,然后采用gan对有标签个人信用数据进行二次扩充,循环迭代上述步骤,直到无标签个人信用数据集中的数据不再减少,迭代结束;最后对最终优化的子学习器采用boosting方法进行集成学习,并将集成得到的学习器用于测试集,确定个人信用度。其采用了集成学习、自训练、协同训练的思路。用两个子学习器对无标签个人信用数据进行标记然后利用标记的个人信用数据对有标签数据进行扩充,并通过生成式对抗网络二次扩充有标签数据的数量,使得样本的训练集增大,模型的泛化能力提升,方法流程图如图7所示。对无标签个人信用数据进行标记,是依据各学习器对同一无标签个人信用数据的分类结果即学习器给出的类标确定。子学习器总数t≤3时,当各子学习器给出当前输入的无标签个人信用数据的类标均相同,则该数据为高置信度的个人信用数据,将各子学习器给出的类标分配给该个人信用数据;子学习器总数t>3时,设置阈值进行确定,当给出的当前输入的无标签个人信用数据的类标相同的子学习器数量占学习器总数的比例高于该阈值时,则该个人信用数据为高置信度的个人信用数据,将学习器给出的类标分配给该个人信用数据然后将从无标签个人信用数据中确定的高置信度的个人信用数据叠加至有标签个人信用数据中,对有标签个人信用数据进行扩充。学习器数量和阈值的设置、对高置信度个人信用数据的确定均是依据需求进行确定。有标签个人信用数据集的差异性,造成后边学习器之间差异性,使得集成学习的效果会好一些。我们选择了两套平衡信用数据集合crx和australia在核函数为rbf时与本领域常用的学习方法进行了比较可以看出我们的算法在两个数据集上都有差不多2%的提升。表2平衡数据集正确率为了系统的验证我们算法的可行性,我们选择german和creditcard两个不平衡个人信用数据集。基于生成式对抗网络与半监督学习的个人信用确定方法,分别与常用的方法进行比较,比较结果如图8、图9所示。图8、图9中相同的方法在使用我们所提出的个人信用评估框架(2表示的柱状图)和未使用个人信用评估框架(1表示的柱状图)有着2%~3%的差距。经过我们的个人信用评估方法,在不平衡数据集german和creditcard上,分别达到了77.5%和74%的正确率。这对帮助银行做出正确决策有着很大的参考价值。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1