陳順雄 宋 斌
(南京理工大學計算機科學與工程學院 南京 210094)
隨著信息技術的不斷發展,經濟領域開始利用信息化手段促進生產率的提高。數據量呈指數式增長和各種不規則多樣的數據加入,一方面可能給企業帶來了無窮的財富;另一方面,如果沒有合適的自動化分析和數據挖掘工具,除了增加企業的保存和維護費用,企業管理者和決策者往往無所適從。
銀行貸款業務種類繁多,服務的對象形式多樣且量大,K-means平均分析方法是使用最常見的方法,效率高。本文在大數據并行處理框架下實現K-Means 聚類算法,并實現了面向大數據的并行化,對銀行貸款業務具有重要的參考價值。
K-means 算法是當前學術界和工業界非常流行的聚類分析算法。其核心思想是將m 個數據對象根據某種規則劃分為k 個不同的聚類,使每個聚類中的特征量到該聚類中心的幾何平方和值最小。
K-means 算法通過聚類準則函數Jc 判斷每次迭代分類均值是否收斂,該算法可以通過形式化描述如下:
對象集的個數為m,令迭代計數器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;
平凡誤差聚類和準則函數Jc可以表示為

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