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