陳順雄 宋 斌
(南京理工大學(xué)計算機科學(xué)與工程學(xué)院 南京 210094)
隨著信息技術(shù)的不斷發(fā)展,經(jīng)濟領(lǐng)域開始利用信息化手段促進(jìn)生產(chǎn)率的提高。數(shù)據(jù)量呈指數(shù)式增長和各種不規(guī)則多樣的數(shù)據(jù)加入,一方面可能給企業(yè)帶來了無窮的財富;另一方面,如果沒有合適的自動化分析和數(shù)據(jù)挖掘工具,除了增加企業(yè)的保存和維護(hù)費用,企業(yè)管理者和決策者往往無所適從。
銀行貸款業(yè)務(wù)種類繁多,服務(wù)的對象形式多樣且量大,K-means平均分析方法是使用最常見的方法,效率高。本文在大數(shù)據(jù)并行處理框架下實現(xiàn)K-Means 聚類算法,并實現(xiàn)了面向大數(shù)據(jù)的并行化,對銀行貸款業(yè)務(wù)具有重要的參考價值。
K-means 算法是當(dāng)前學(xué)術(shù)界和工業(yè)界非常流行的聚類分析算法。其核心思想是將m 個數(shù)據(jù)對象根據(jù)某種規(guī)則劃分為k 個不同的聚類,使每個聚類中的特征量到該聚類中心的幾何平方和值最小。
K-means 算法通過聚類準(zhǔn)則函數(shù)Jc 判斷每次迭代分類均值是否收斂,該算法可以通過形式化描述如下:
對象集的個數(shù)為m,令迭代計數(shù)器I=1,選取k個初始聚類中心Zj(I),j=1,2,3,…,k ;
計算每個對象與初始聚類中心的特征距離值,D(xi,Zj(I)),i=1,2,3,…,m ,j=1,2,3,…,k ,如果 滿 足D(xi,Zk(I))=min{D(xi,Zj(I))}, j=1,2,3,…,n},則,xi∈wk;
平凡誤差聚類和準(zhǔn)則函數(shù)Jc可以表示為
判斷若 |Jc(I)-Jc(I-1) |<ε,則算法中止;否則I=I+1,重新求解k 個新的聚類中心值,Zj(I)=
K-means 算法實現(xiàn)簡單,通過距離準(zhǔn)則函數(shù)控制迭代的終止,因此,能夠快速且能夠有效處理大數(shù)據(jù)。但是,算法從所有對象集合中選擇的初始k個對象作為初始聚類中心,影響著算法的結(jié)果,其主要影響因素有以下幾點:
1)聚類個數(shù)k的確定;
2)初始聚類中心點的選擇;
3)特征變量與距離準(zhǔn)則函數(shù)的選擇。
銀行貸款系統(tǒng)是根據(jù)企業(yè)的發(fā)展或個人的需求提供了資金保障,因此,銀行貸款系統(tǒng)面向的對象是個人或企業(yè)。如何在海量企業(yè)或個人日常刷卡或資金周轉(zhuǎn)記錄中挖掘發(fā)現(xiàn)有用的信息。
1)數(shù)據(jù)準(zhǔn)備和清洗
通過與銀行客戶經(jīng)理的溝通,提取部分交易數(shù)據(jù)作為特征變量。從客戶數(shù)據(jù)庫中讀取這些數(shù)據(jù)信息后,需要對數(shù)據(jù)進(jìn)行清洗、異常處理和轉(zhuǎn)換等以滿足客戶層次聚類算法的輸入需要。數(shù)據(jù)清洗手段主要包括:缺失項和無效項的處理、變量值的轉(zhuǎn)換和關(guān)鍵項的提取。一般情況下,使用0 來代替缺失項和無效項。
客戶數(shù)據(jù)格式和精度不一,由于聚類分析采用同樣的算法和數(shù)值處理精度,變量值的轉(zhuǎn)換是指為了便于采用同一個刻度來描述,對數(shù)值類的變量,采用整數(shù)來計算,將所有的浮點數(shù)轉(zhuǎn)為整數(shù),描述性的指標(biāo)采用等級方式來描述。
關(guān)鍵項的提取是指由于數(shù)據(jù)來源的數(shù)據(jù)庫不同,需要采用數(shù)據(jù)項切片或抽取技術(shù)對那些無關(guān)緊要的數(shù)據(jù)進(jìn)行忽略處理。這種方法可以有效地減低被處理對象的維度,降低分析的復(fù)雜度,極大地提高了后期分析的效率。
2)特征變量抽取
從銀行交易數(shù)據(jù)中可以抽取的描述與銀行貸款相關(guān)的特征變量有根據(jù)對象可以分為個人和企業(yè)兩類。對客戶進(jìn)行描述的特征變量可以分為:分類變量和描述變量。除了銀行貸款系統(tǒng)輔助客戶經(jīng)理快速找到放貸客戶外,還應(yīng)該根據(jù)需求對貸款客戶進(jìn)行分類。
3)準(zhǔn)則函數(shù)的制定
個人相關(guān)的特征變量可以使用等級進(jìn)行量化。這些變量距離的含義可以使用兩種方式進(jìn)行描述。一類是區(qū)間劃分歸類的變量,可以通過區(qū)間的間隔來作為衡量距離,另一類職業(yè)變量的距離如果是使用大類描述,那么按照無職業(yè)<藍(lán)領(lǐng)<白領(lǐng)<金領(lǐng)的順序進(jìn)行距離測量。對這些個人描述變量進(jìn)行量化后,可以對這些特征變量進(jìn)行分類組合,可以得到不同的聚類分層準(zhǔn)則函數(shù),分成三各層次組合,為層次聚類算法提供了基礎(chǔ)。
企業(yè)相關(guān)的特征變量也可以使用等級進(jìn)行量化。對企業(yè)描述變量進(jìn)行量化后,可以對這些特征變量進(jìn)行分類組合,同樣可以得到不同的聚類分層準(zhǔn)則函數(shù)。
4)聚類參數(shù)的選擇
將客戶分成兩類,個人貸款和企業(yè)貸款,一方面為聚類算法并行化提供了可能,另一方面,可以不斷地細(xì)化,將不可能的貸款的客戶過濾掉,抽取出優(yōu)質(zhì)客戶和貸款需求強烈的客戶,為精準(zhǔn)營銷提供了可能。
5)層次聚類算法框架
根據(jù)以上幾個方面的描述,可以從整體上描述銀卡客戶層次聚類算法,算法的流程。
輸入:n個客戶信息對象的數(shù)據(jù)集
輸出:聚類客戶對象
(1)參照數(shù)據(jù)準(zhǔn)備和清洗的方法和步驟對數(shù)據(jù)進(jìn)行預(yù)處理,統(tǒng)一數(shù)據(jù)項的格式,合并客戶數(shù)據(jù)表,剔除無效項和補齊缺失項,使之符合要求的數(shù)據(jù)對象On={x1,x2,x3,…,xn};
(2)根據(jù)爬行中點法參照初始聚類生成方法查找第一層次的初始聚類k11,k12,…,k19 的中心c11,c12,…,c19;
(3)從On 中剩余的對象中找出分別與初始對象k11,k12,…,k19 距離較小的對象分別加入該聚類中;
(4)計算出新的k11,k12,…,k19 的中心c11,c12,…,c19;
(5)重復(fù)迭代步驟(2)~(4),直到準(zhǔn)則函數(shù)不再變化,表明該層次聚類接受;
(6)重復(fù)(2)~(5),分別處理三個層次聚類,輸出結(jié)果。
K-means 算法在處理海量數(shù)據(jù)時因其時間復(fù)雜度較高往往容易效率低下,處理能力存受限。MapReduce 并行化模式主要思想是:將海量數(shù)據(jù)對象切割成多個數(shù)據(jù)集splits,1個處理結(jié)點負(fù)責(zé)處理1 個數(shù)據(jù)集合和執(zhí)行Map 映射中的需要計算任務(wù)并產(chǎn)生中間數(shù)據(jù),中間數(shù)據(jù)又被其他的處理結(jié)點作為輸入并行執(zhí)行Reduce 歸約任務(wù),最終得到分析數(shù)據(jù)。
MapReduce 并行模型中心是Map 和Reduce 函數(shù),一般是由程序員負(fù)責(zé)編程具體實現(xiàn),按照一定的映射組合方式將輸入鍵值對<key,value>轉(zhuǎn)變成另一種鍵值對<key,value>。Map 過程是將多個小數(shù)據(jù)集解析成一批<key,value>對,計算后產(chǎn)生中間數(shù)據(jù)列表List(<k2,v2>);Reduce 規(guī)約過程將列表對<k2,List(v2)>作為輸入,對同屬于一個鍵值key的value值集進(jìn)一步后續(xù)求解,其他并行問題如分布式文件系統(tǒng)、工作調(diào)度、容錯、存儲、并行通信等由MapReduce 運行模式環(huán)境進(jìn)行動態(tài)策略性的配置。
隨著銀行貸款業(yè)務(wù)的蓬勃發(fā)展,各類貸款套餐層出不窮,且需要貸款的人群越越來越多,如何在海量的客戶中挖掘分析得到最具貸款需求和有能力還貸的優(yōu)質(zhì)客戶?通過對經(jīng)典的K-means 聚類算法進(jìn)行分析,結(jié)合銀行貸款行業(yè)客戶的多樣性,嘗試銀行客戶層次聚類算法,并在Map-Reduce 并行模型下實現(xiàn)了面向大數(shù)據(jù)的并行化。此算法是基于大數(shù)據(jù)的客戶聚類分析技術(shù)能夠解決精準(zhǔn)營銷的問題,該模型系統(tǒng)能夠輔助一線銀行營銷人員將精力集中在有需求的客戶,重點推銷,提高營銷的成功率,從而提高銀行市場競爭力。