吳玉霞,牟援朝
(華東理工大學(xué) 商學(xué)院,上海 200237)
盡管金融犯罪活動(dòng)受到了全球的關(guān)注,由于金融制度的不足和監(jiān)控體系的不完善等原因,當(dāng)前金融犯罪活動(dòng)尤其是洗錢活動(dòng)則日益突出,反洗錢問題須亟待解決。各國金融機(jī)構(gòu)保存了大量的客戶資料和交易行為記錄,這些記錄包括了交易資金的流動(dòng)性和交易次數(shù)波動(dòng)性等,利用信息技術(shù)從這些海量的數(shù)據(jù)中識別出正常的和異常、可疑的交易行為成為各國打擊洗錢犯罪的有效手段,而數(shù)據(jù)挖掘技術(shù)的科學(xué)性和有效性則滿足了當(dāng)前的需求,受到了反洗錢工作部門的重視,成為當(dāng)前研究的熱點(diǎn)問題。
本文擬通過數(shù)據(jù)挖掘的聚類技術(shù)來對客戶進(jìn)行管理和區(qū)分。大多數(shù)單一的聚類技術(shù)都有其自身的優(yōu)缺點(diǎn),并且其重點(diǎn)在于高質(zhì)量的聚類結(jié)果,而將潛在的需要挖掘的孤立點(diǎn)當(dāng)作噪音等自動(dòng)刪除或忽略掉。本文針對金融機(jī)構(gòu)客戶的數(shù)量巨大,維數(shù)較高等特點(diǎn),擬將傳統(tǒng)的層次聚類和劃分聚類進(jìn)行結(jié)合,實(shí)現(xiàn)優(yōu)勢互補(bǔ),并對其進(jìn)行相應(yīng)的改進(jìn),從而有效識別出異常值和孤立類,本文以期通過該方法的實(shí)現(xiàn),為孤立點(diǎn)的進(jìn)一步挖掘提供有效的高質(zhì)量數(shù)據(jù)。
層次的方法是對給定數(shù)據(jù)對象集合進(jìn)行層次的分解。根據(jù)層次的分解如何形成,層次的方法可以分為凝聚的和分裂的[2]。凝聚的方法也稱為自底向上的方法,一開始將每個(gè)對象作為單獨(dú)的一個(gè)組,然后相繼地合并相近的對象或組,直到所有的組合并為一個(gè)(層次的最上層),或者達(dá)到一個(gè)終止條件。分裂的方法又稱為自頂向下的方法,一開始將所有的對象聚成一個(gè)簇。在迭代的每一步中,一個(gè)簇被分裂成更小的簇,直到最終每個(gè)對象在單獨(dú)的一個(gè)簇中,或達(dá)到一個(gè)終止條件。
大多數(shù)層次聚類方法是屬于凝聚的方法,它是由小類逐漸聚為大類的過程,可以通過譜系圖形象的表達(dá)出來,由合并的距離可以看出它們的親疏程度。各種凝聚型的聚類步驟基本相同,所不同的是類與類之間的距離定義不同[2]。類間距離的不同定義就產(chǎn)生了不同的聚類方法。常用的簇間距離度量方法有最小距離、最大距離、平均距離和平均值的距離等。
劃分方法是給定n個(gè)對象或元組的數(shù)據(jù)庫,一個(gè)劃分方法構(gòu)建數(shù)據(jù)的k個(gè)劃分,每個(gè)劃分表示一個(gè)聚類,并且k小于等于n。其基本思路是[3]:首先從數(shù)據(jù)集中隨機(jī)地選擇幾個(gè)對象作為聚類的原型,然后將其他對象分別分配到由原型所代表的最相似、也是距離最近的類中。對于分割聚類方法,一般需要一種迭代控制策略對原型不斷地進(jìn)行調(diào)整,從而使得整個(gè)聚類得到優(yōu)化。k-平均法(k-means)是使用最為廣泛和經(jīng)典的劃分方法,它是以k為參數(shù),把N個(gè)對象分為k個(gè)類,使類內(nèi)具有較高的相似度,而類間的相似度較低。
k-means算法過程[3][4]包括輸入輸出,即
輸入:包含N個(gè)數(shù)據(jù)對象的數(shù)據(jù)集及要生成類的數(shù)目k。
輸出:k個(gè)類,使平方誤差準(zhǔn)則為最小。
具體算法過程為:
(1)任意(或人為)地選擇k個(gè)對象作為初始的聚類中心;
(2)計(jì)算每個(gè)對象與聚類中心的距離(平方誤差),將每個(gè)對象賦給最近的類;
(3)重新計(jì)算每個(gè)類中對象的平均值;
(4)如果均值與上一個(gè)循環(huán)相比不再發(fā)生明顯變化,結(jié)束;如果發(fā)生變化則返回到第(2)步,直到收斂為止。
從算法的過程可以看出,k個(gè)初始聚類中心的選取對聚類結(jié)果具有較大的影響,因?yàn)樗惴ǖ某跏碱愔行氖侨我膺x取的。
很多傳統(tǒng)的經(jīng)典的數(shù)據(jù)挖掘算法都尤其優(yōu)缺點(diǎn),關(guān)鍵是要選擇適合的算法應(yīng)用在特定的環(huán)境里。針對上面兩種算法的優(yōu)缺點(diǎn),提出將兩種算法結(jié)合起來,并進(jìn)行相應(yīng)的改進(jìn)。
(1)采用層次聚類方法對聚類源數(shù)據(jù)集進(jìn)行聚類,得到初始聚類結(jié)果,找出異常值并保存到黑名單表中。
(2)從待聚類的源數(shù)據(jù)集中將找到的異常值提取出來作為進(jìn)一步調(diào)查的基礎(chǔ)數(shù)據(jù),同時(shí)得到另一個(gè)待聚類對象集D(從源數(shù)據(jù)集中除去異常值的對象集)。
(3)采用K-means算法對D進(jìn)行聚類,其類數(shù)和聚類中心是來自層次聚類得到的結(jié)果。
(4)得到對象集D的聚類結(jié)果,再將異常值單獨(dú)作為一類,獲得聚類結(jié)果和異常類。
(5)對所挖掘出來的異常值和異常類匯總到黑名單中進(jìn)一步進(jìn)行異常挖掘,對聚類的結(jié)果進(jìn)行正常模式和可疑模式的分析,并在聚類的基礎(chǔ)上進(jìn)行全局孤立點(diǎn)檢測。
從算法的流程中可以看出,兩者方法的結(jié)合很好地彌補(bǔ)了K-means算法的不足。同時(shí)能夠有效的識別出異常數(shù)據(jù),為反洗錢可疑識別中的應(yīng)用打下了基礎(chǔ)。但由于在金融應(yīng)用中,數(shù)據(jù)量巨大,而起始使用的層次方法由于其高的復(fù)雜度,不適宜用于大數(shù)據(jù)集的挖掘,效率比較低,消耗時(shí)間和內(nèi)存比較大,因此,必須對其進(jìn)行進(jìn)一步改進(jìn)。
改進(jìn)的方法主要有兩種:
(1)從樣本中抽取一些子樣本進(jìn)行層次聚類。此方法的思路是從大樣本數(shù)據(jù)中隨機(jī)的或按一定的規(guī)則抽取出部分子樣本進(jìn)行聚類分析,這樣基本上可以得出較準(zhǔn)確的聚類數(shù)和聚類中心,并能有效縮短其檢查和計(jì)算所需的時(shí)間。
(2)采用兩步聚類(Two-step)的方法。第一步是單獨(dú)通過數(shù)據(jù),把原始數(shù)據(jù)壓縮成易處理的子類集。第二步使用層次聚類方法,將子類逐漸合并成越來越大的聚類,不需要再次通過數(shù)據(jù)。許多層次聚類從單個(gè)記錄開始分群,逐步合并從更大的聚類。兩步聚類的最初的預(yù)先聚類使層次聚類即使處理大型數(shù)據(jù)集也很快,能夠自動(dòng)的排除出離群點(diǎn)。
第一種改進(jìn)的方法在一般的聚類分析中比較有效且實(shí)用,但在反洗錢可疑識別中的重點(diǎn)是異常值的發(fā)現(xiàn),而此改進(jìn)方法由于其抽樣性會(huì)降低對異常值發(fā)現(xiàn)的功能,因此在可疑識別中的應(yīng)用并不是很合理。第二種方法能夠較好的處理大型數(shù)據(jù)集且能處理異常值,因此在金融可疑識別中更為實(shí)用。本文采用第二種方法進(jìn)行應(yīng)用研究。
本文在選擇樣本數(shù)據(jù)時(shí)特選取信息化程度比較高的券商,其完整的數(shù)據(jù)庫建設(shè)保證了數(shù)據(jù)的準(zhǔn)確、完整和一致性,使得本文的分析結(jié)果比較客觀。本文選取了國內(nèi)著名券商A的一個(gè)營業(yè)部A的數(shù)據(jù)。券商A為國內(nèi)十大券商之一,資產(chǎn)狀況良好,不屬于高風(fēng)險(xiǎn)券商,而且其在國內(nèi)屬于較早建立反洗錢系統(tǒng)的券商,數(shù)據(jù)庫數(shù)據(jù)可靠性和完整性較高。本文共采集了營業(yè)部A的44247條證券交易數(shù)據(jù)、7227條客戶資產(chǎn)和2665條資金存取數(shù)據(jù),時(shí)間采集區(qū)間為2009年5月8日至2009年6月8日,并在后文數(shù)據(jù)預(yù)處理中增加若干人工數(shù)據(jù)用于模型識別效果的評價(jià)。
數(shù)據(jù)庫中的數(shù)據(jù)包含著大量的屬性,每個(gè)客戶賬戶數(shù)據(jù)庫中的屬性就有幾十個(gè),并不是每個(gè)屬性都是可用的,如果將不相關(guān)或相關(guān)性很小的屬性用于建模,將會(huì)使得計(jì)算代價(jià)呈幾何級增加。因此需要提取出與挖掘目標(biāo)最貼切的最相關(guān)的屬性。
選取屬性的標(biāo)準(zhǔn)是要能夠?qū)梢傻南村X活動(dòng)進(jìn)行描述,并且要反應(yīng)證券公司的交易特點(diǎn)。一個(gè)典型、完整的洗錢過程可以分為三個(gè)主要階段:放置階段、離析階段和歸并階段。在實(shí)際的洗錢操作過程中,三個(gè)階段有時(shí)很明顯,但大多情況則是則交叉運(yùn)用,難以截然分開。一般來說,對洗錢者而言放置階段是最困難的一步。在放置階段其資金流動(dòng)的明顯特征就是入賬資金數(shù)量巨大,而進(jìn)入離析階段后,資金總量不再發(fā)生劇烈變動(dòng),而資金存取的頻繁性表現(xiàn)加劇,資金從一個(gè)賬戶頻繁地轉(zhuǎn)入轉(zhuǎn)出,且流向極其復(fù)雜。經(jīng)過對洗錢活動(dòng)資金存取的特征進(jìn)行分析,得出結(jié)論:聚類方法中的屬性應(yīng)該包括對資金存取數(shù)量、資金存取頻次和交易情況的描述。
總的來說,結(jié)合證券公司客戶的交易賬戶特征可以定義5個(gè)屬性:賬戶資產(chǎn)總額、月交易次數(shù)、月存取次數(shù)、月交易總額、月存取總額。
當(dāng)前數(shù)據(jù)挖掘技術(shù)的建模工具很多,本文使用的建模工具是Clementine軟件。Clementine軟件使用圖形象征的方法,其功能是通過拖拉鼠標(biāo)和連接屏幕上的功能節(jié)點(diǎn)來實(shí)現(xiàn)的。實(shí)現(xiàn)模型的過程主要是分為兩步:一是對客戶數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行預(yù)處理;二是用Clementine工具挖掘模型的建模實(shí)現(xiàn)。
3.3.1 數(shù)據(jù)預(yù)處理
本文是從證券公司客戶的數(shù)據(jù)庫中抽取出相關(guān)的字段,截取一個(gè)月的交易記錄并導(dǎo)出到Excel表中用于作為分析的數(shù)據(jù)來源。
將得到的數(shù)據(jù)分別導(dǎo)入到SQL Server2005中建成的3張表中。通過屬性的選取、表的合并以及對原始數(shù)據(jù)進(jìn)行了處理,剔出了一些非交易數(shù)據(jù),如手續(xù)費(fèi)收取、返還和紅利、紅股派發(fā)等的記錄數(shù)據(jù)。經(jīng)過處理,共整理出了1131條數(shù)據(jù)記錄。文中通過增加10條人工記錄來驗(yàn)證聚類可疑識別的效果。其中5條記錄表現(xiàn)的特點(diǎn)是交易次數(shù)較少,但存取較頻繁;另5條記錄則是交易很頻繁,存取次數(shù)一般。這兩個(gè)特點(diǎn)都是可疑報(bào)告中的特征。因此共1131條真實(shí)記錄和10條人工記錄。每個(gè)客戶賬戶包含如表1所示的6個(gè)字段。
表1 字段名稱
3.3.2 兩步聚類可疑識別過程和結(jié)果
經(jīng)過數(shù)據(jù)預(yù)處理的過程,我們已經(jīng)將數(shù)據(jù)轉(zhuǎn)換成適合模型且易于挖掘的形式。主要任務(wù)就是要把準(zhǔn)備好的數(shù)據(jù)輸入到模型中,通過編輯并連接模型中的節(jié)點(diǎn)完成基于兩步聚類的聚類過程,這里應(yīng)用的建模節(jié)點(diǎn)為Two-step節(jié)點(diǎn)。
在應(yīng)用Clementine進(jìn)行聚類時(shí),要先設(shè)置Two-step節(jié)點(diǎn)模型選項(xiàng),對Two-step建模節(jié)點(diǎn)的設(shè)置如下:
使用分區(qū)數(shù)據(jù),選擇分區(qū)字段位于流中,將數(shù)據(jù)分割成數(shù)個(gè),用于訓(xùn)練、測試和驗(yàn)證的單獨(dú)樣本,并且可能提供當(dāng)模型擴(kuò)展為可適用于大型數(shù)據(jù)集時(shí),該模型的能力說明;
采用標(biāo)準(zhǔn)化數(shù)值字段。兩步聚類會(huì)對所有數(shù)值輸入字段進(jìn)行標(biāo)準(zhǔn)化,使其具有相同的尺度,即均值為0且方差為 1;
離群值檢測在預(yù)聚類步驟進(jìn)行,會(huì)將相對于其他子聚類具有較少記錄的子聚類視為潛在離群值,且重新構(gòu)建不包括這些記錄的子聚類樹;
自動(dòng)計(jì)算聚類數(shù)。兩步聚類可以非常迅速地對大量聚類解決方案進(jìn)行分析并為訓(xùn)練數(shù)據(jù)選擇最佳聚類數(shù)。通過設(shè)置最大聚類數(shù)和最小聚類數(shù)指定要嘗試的聚類解決方案的范圍。本文設(shè)置最大聚類為15,最小為2。
基于兩步聚類的細(xì)分結(jié)果如表2所示。
通過聚類的結(jié)果可以看出,聚類五和六兩類由于其所含的記錄數(shù)較少,所謂的“小模式”可疑性很大,因此將這兩類數(shù)據(jù)存入到可疑名單表中,以作為進(jìn)一步離群數(shù)據(jù)挖掘的基礎(chǔ)數(shù)據(jù)。同時(shí)將剩下的4類數(shù)據(jù)作為第二階段的聚類基礎(chǔ)數(shù)據(jù)。通過輸出的可疑名單數(shù)據(jù)可以發(fā)現(xiàn),設(shè)置的10人工數(shù)據(jù)中有5條被識別出來。可見通過兩步聚類能夠處理一定的異常值。
3.3.3 設(shè)置K-means建模節(jié)點(diǎn)并進(jìn)行劃分聚類
K-means建模節(jié)點(diǎn)的設(shè)置如下:
指定聚類數(shù)。通過兩步聚類,我們得出將數(shù)據(jù)劃分成6類,由于除掉其中的異常情況,因此,數(shù)據(jù)還剩下4類,添加一個(gè)特殊類作為離群類的存取,將聚類數(shù)設(shè)為5;
表2 兩步聚類的細(xì)分結(jié)果
停止條件。將迭代停止條件設(shè)為默認(rèn)的終止準(zhǔn)則,最大迭代次數(shù)先設(shè)定為20,差異的容忍度指定為小于0.00001,滿足以上任意一個(gè)停止條件訓(xùn)練就會(huì)終止。由于用于K均值聚類的數(shù)據(jù)集規(guī)模不大,通常迭代的步數(shù)不會(huì)超過十步;
對集合字段重新編碼。集合字段重新編碼的作用是指定一個(gè)0至1之間的值用于把集合字段編碼成一組數(shù)值型字段,默認(rèn)值為0.5的平方根約0.70711,為重新編碼后的變量字段提供合適的加權(quán)。值越接近1.0,集合型字段權(quán)重越大于數(shù)值型字段。本文選擇默認(rèn)設(shè)置處理集合字段。
K-means聚類的細(xì)分結(jié)果如表3所示。
表3 K-means聚類的細(xì)分結(jié)果
3.3.4 結(jié)果分析
在聚類分析時(shí)則根據(jù)每條交易的屬性的相似程度進(jìn)行聚類,當(dāng)聚類結(jié)果顯示,在聚類過程中所選取的所有屬性都能發(fā)揮較大的作用,則說明聚類結(jié)果顯著;若聚類過程中某一屬性如年交易金額并沒有使用,而僅使用年交易次數(shù)作為實(shí)際聚類過程中的聚類屬性,或者聚類過程中沒有太多使用某一個(gè)屬性,此情況就說明所選取的屬性不合適,并認(rèn)為聚類效果不顯著。由當(dāng)前聚類的結(jié)果可以得出,所選取的5個(gè)屬性均發(fā)揮了相應(yīng)的作用,聚類結(jié)果比較顯著。聚類1反映的是那些資產(chǎn)較小,存取活動(dòng)和交易活動(dòng)均較少的客戶,可疑性較小;聚類5與1相比,存取次數(shù)較高,比較可疑;聚類4相比聚類1客戶資產(chǎn)稍大,交易額也較大,可疑性較?。痪垲?是資產(chǎn)較大,交易資金量較小、交易活躍,該類包含的記錄很少,可疑性很大;聚類3與2相比,交易次數(shù)較少,金額較大,易存在大額存取和交易的情形,可疑性較大。
聚類2和3包含的記錄均較少,且可疑性較大,將該兩類的記錄匯總到可疑交易名單中。通過聚類的記錄結(jié)果,可以發(fā)現(xiàn)兩步聚類未識別出的5條人工記錄在聚類2中。
聚類分析是一個(gè)循環(huán)過程。若聚類結(jié)果不夠顯著,如第一階段采用的兩步聚類,需要將異常數(shù)據(jù)剔除出源數(shù)據(jù),異常數(shù)據(jù)將被專門保存作為需要深入調(diào)查的可疑名單中,然后對處理過的原數(shù)據(jù)進(jìn)行再次聚類,同時(shí)為了避免與上次聚類的結(jié)果重合和對其改進(jìn),需要改變聚類方法,如第二階段采用的K-means聚類,依次類推,直到聚類結(jié)果顯著為止。最后,將在聚類過程中的所有異常類數(shù)據(jù)進(jìn)行匯總保存,所得數(shù)據(jù)集即為可疑數(shù)據(jù),然后以賬戶為主題確定出可疑名單。
孤立點(diǎn)的進(jìn)一步檢測可分為兩個(gè)方面,一方面是進(jìn)一步分析在兩階段聚類過程中識別出的被匯總保存到可疑名單中異常值和孤立類;另一個(gè)方面是在已完成的高質(zhì)量的聚類的結(jié)果的基礎(chǔ)上,進(jìn)一步對每個(gè)類進(jìn)行全局孤立點(diǎn)檢測。對已列出的可疑名單中的記錄進(jìn)行檢測比較簡單,本文介紹對全局孤立點(diǎn)檢測建模的過程和處理結(jié)果進(jìn)行分析。
圖1 孤立點(diǎn)檢測建模過程
建模過程如圖1所示,通過在聚類的基礎(chǔ)上設(shè)置異常檢測節(jié)點(diǎn)來完成異常模型的建立,每個(gè)記錄都指定了一個(gè)異常指數(shù)$0-AnomalyIndex顯示,該指數(shù)是組偏差指數(shù)與該觀測值所屬聚類中平均值的比。此指數(shù)的值越大,觀測值與平均值的偏差就越大。通常情況下,指數(shù)值大于 2的觀測值有可能是異常觀測值,因?yàn)樵撈钪辽偈瞧骄档膬杀丁?/p>
添加表節(jié)點(diǎn)并執(zhí)行將建模的結(jié)果輸出到Excel表中 (如圖2所示)以查看得分?jǐn)?shù)據(jù)。模型生成的 $0-Anomaly字段表明哪些記錄為潛在異常記錄。可在“設(shè)置”選項(xiàng)卡中選中了放棄記錄選項(xiàng),僅列出標(biāo)記為潛在異常的記錄。還列出了每條記錄的整體異常指數(shù)值,同時(shí)給出了對等組和最有可能造成記錄異常的4個(gè)字段。
圖2 可疑程度得分
通過查看得分?jǐn)?shù)據(jù),得分表中列出的異常記錄有31條,其中在Two-step聚類中未識別出的5條人工記錄,仍放入孤立點(diǎn)檢測中,其在得分表中$0-Anomaly字段均顯示T(表示屬于異常),可見異常檢測的效果比較顯著。情報(bào)分析部門可以根據(jù)自身的狀況和資源的情況,按照可疑程度的排序結(jié)果選擇要調(diào)查的賬戶數(shù),并可根據(jù)給出的具體字段的可疑程度,能有效減緩調(diào)查的難度和工作負(fù)擔(dān)。
由于客戶資料的保密性,此處就省略了對具體賬戶的所屬的可疑類型進(jìn)行分析的過程。建模過程可以將全部記錄中的字段影響異常值程度以散點(diǎn)圖的形式顯示出來,月交易金額與月存取金額的異常值散點(diǎn)圖,如圖3所示。
圖3 資金存取額與交易額的散點(diǎn)圖
要查看顯示所有記錄(不僅僅是異常記錄)的完整散點(diǎn)圖,要取消選擇已生成模型中“設(shè)置”選項(xiàng)卡上的放棄記錄選項(xiàng)。使用圖表更方便地查看要標(biāo)記的記錄,以備進(jìn)一步調(diào)查。
通過挖掘的結(jié)果顯示,案例的異常點(diǎn)挖掘通過設(shè)置人工數(shù)據(jù)進(jìn)行檢驗(yàn),人工數(shù)據(jù)在兩階段聚類過程中分別在不同的階段被識別出來,在異常建模中也被顯示出來,基于兩階段聚類算法的異常識別建模過程能夠根據(jù)客戶交易數(shù)據(jù)和客戶基本信息有效挖掘出客戶交易行為的異常記錄,但是限于數(shù)據(jù)源以及一些客觀條件制約,使得異常點(diǎn)的挖掘僅僅專注于聚類分析后匯總的可疑名單和各個(gè)分組客戶交易行為異常程度,而沒有對客戶在股票買賣、資本運(yùn)作(轉(zhuǎn)賬)等方面做深入細(xì)致的分析,在今后的研究中將進(jìn)一步地對這方面進(jìn)行深入具體的分析。
[1]湯俊.基于客戶行為模式識別的反洗錢數(shù)據(jù)監(jiān)測與分析體系[J].中南財(cái)經(jīng)政法大學(xué)學(xué)報(bào),2005,(4).
[2]毛國君,段立娟,王實(shí)等.數(shù)據(jù)挖掘原理與算法(第二版.)[M].北京:清華大學(xué)出版社,2007.
[3]陳光宇.數(shù)據(jù)挖掘在客戶流失分析中的應(yīng)用—聚類與分類算法的研究及應(yīng)用[D].江蘇科技大學(xué),2007.
[4]張業(yè)嘉誠.劃分聚類與基于密度聚類算法的改進(jìn)方法研究[D].大連理工大學(xué),2007.
[5]李文超,周勇,夏士雄.一種新的基于層次和K-means方法的聚類算法[C].第26屆中國控制會(huì)議論文集,2007.
[6]謝邦昌.數(shù)據(jù)挖掘Clementine應(yīng)用實(shí)務(wù)[M].北京:機(jī)械工業(yè)出版社,2008.