姜瀟蔚 楊達霏
1.中國郵政集團有限公司南京市分公司;
2.中博信息技術研究院有限公司
隨著大數據,計算機互聯網技術的發展和普及,符合大數據標志的數據集容量也會增長,定義隨不同行業也有變化,這也依賴于在一個特定行業通常使用何種軟件和數據集的量,僅日常生活離不開數據,并且無時無刻都在產生著數據,因此大數據在今天不同行業中的范圍可以從TB到PB。大數據有Volume(大量)、Velocity(高速)、Variety(多樣)、Value(低價值密度)、Veracity(真實性)五大特點。各種機器學習算法以及深度學習算法等相繼在銀行領域得到應用,但由于數據量龐大和數據價值密度低的特點,有研究者提出利用LSTM提取時序特征的能力、隨機森林的擬合能力以及集成森林的分類能力三者集合的多類別預測算法;有研究者提出先利用AP聚類算法對屬性進行選擇,再使用隨機森林方法建立客戶流失預警模型。
以學習方法作為出發點對傳統的機器學習進行分類,包括兩類,分為有監督和無監督兩種方式。在無監督學習技術中,其中聚類算法為一種經典的機器學習算法。有監督的機器學習算法通過學習完備、已知以及相對正確的知識構建好的模型為之后的機器學習提供好的臺階,再利用構建好的模型對待測數據進行指導工作。有監督的機器學習算法還可以在對模型進行訓練時,通過比較模型結果和已知結果對模型進行修正,不斷完善模型從而改善模型效果。決策樹算法和RandomForest都是典型的有監督的機器學習算法。
分類在數據挖掘方面得到廣泛的應用,它是描述數據結構類的重要模型,可以用它來預測離散的、無序的數據類別。分類的過程一般分為兩個階段,由訓練階段構造分類器和將預定數據集通過分類器進行分類階段。
RandomForest由多顆決策樹組成,其中決策樹由根結點開始劃分,由上而下構造樹,利用既定的劃分規則進行分類,分成二個及以上的葉子結點,直至每個葉子結點都無法在進行下一層構造,生成完整的樹。歸屬在同一個結點內的數據具有相似的特性。
決策樹算法是基于信息的混亂程度即信息熵,信息熵的公式如公式(1)所示,其中p(i|t)代表了節點t為分類i的概率:

當信息不確定性越高則信息熵的值越大,該數據包含的信息量則越大。信息熵越大,純度越低,不確定性越高。當集合中的所有樣本均勻混合時,信息熵達到最大值,不確定性最高。構件決策樹時根據不確定性進行構建。常用的有ID3,C4.5和CART算法。ID3算法基于信息熵的差,即信息增益。
信息熵由香農在1948年被提出,在信息論中是一種用于描述信源的不確定度,也可以用來描述某種特定信息的出現概率。信息熵計算公式如下所示:

其 中,X表示信息源,對數以2為 底,m表 示{X1,X2,…,Xm}是整個集合的一個劃分,pi表示i出現的頻率。
使用某一特征A對數據分類后,其不確定度會減小(因為數據集有所劃分)。此時的熵也會減小,假設特征A有m個類別,其計算公式為:


信息增益為以上兩者的差值,信息增益計算公式如下所示:ID3算法選擇信息增益最大的變量作為劃分規則。而CART算法是基于基尼不純度,基尼不純度是將數據集中劃分成若干子集后隨機選取子集,利用基尼不純度來衡量其被應用于其他部分的概率。其中,基尼不純度越小純度越高,集合的有序程度越高,分類效果越好。當基尼不純度為0時,表示集合的類別一致。基尼不純度計算公式如下所示:

其中,m是類標簽的個數,fi是標簽i在一個節點出現的頻率。
RandomForest算法是決策樹算法的延伸,RandomForest包含多個決策樹,結果由投票結果最多的作為輸出。RandomForest算法較決策樹算法,不僅能夠處理具有高維特征的輸入樣本,而且不需要降維,而且能夠評估各個特征在分類問題上的重要性。隨機森林中有許多的分類樹。將一個輸入樣本進行分類,需要將輸入樣本輸入到每棵樹中進行分類。打個形象的比喻:森林中召開會議,討論某個動物到底是老鼠還是松鼠,每棵樹都要獨立地發表自己對這個問題的看法,也就是每棵樹都要投票。該動物到底是老鼠還是松鼠,要依據投票情況來確定,獲得票數最多的類別就是森林的分類結果。森林中的每棵樹都是獨立的,99.9%不相關的樹做出的預測結果涵蓋所有的情況,這些預測結果將會彼此抵消。少數優秀的樹的預測結果將會超脫于蕓蕓“噪音”,做出一個好的預測。將若干個弱分類器的分類結果進行投票選擇,從而組成一個強分類器,就是隨機森林bagging的思想。但隨機森林改進了預測準確率的同時卻損失了解釋性。
本文針對葡萄牙銀行機構的數據分析如圖1所示。采用對客戶的職業、年齡、住房狀況、婚姻狀況、存款狀況、貸款狀況、受教育狀況等數據進行分析,最終預測客戶是否會購買某款銀行產品。數據集總共25317條數據,利用70%數據進行訓練,剩余30%數據進行預測。針對數據集中的原始數據為文字類型的需進行量化處理,因數據為離散數據,相關性弱,無需使用one hot encoding+PCA,本文利用labelencoder對數據進行處理,將二值特征轉化為0、1,并針對缺省數值進行補足。

圖1 葡萄牙銀行客戶初始數據
利用數據集70%進行訓練,剩余數據進行測試。具體算法步驟如下:
(1)輸入數據集D、屬性集合A以及訓練樣本S,創建節點T(首次生成的T為根節點);
(2)若訓練樣本為空時,建樹失敗,返回節點T;
(3)若候選屬性集合A為空,則返回T作為單節點樹;
(4)若訓練樣本S屬于同一類,則返回T作為葉子節點,并將D的類賦給T;
(5)隨機且有放回地從訓練集中的抽取n個訓練樣本,作為該樹的訓練集,n小于等于N;
(6)每次樹進行分裂時,從這n個特征中選擇最優的。
本實驗驗證算法的可行性及準確率,利用數據集70%進行訓練,剩余數據進行測試。每次測試為有放回的隨機取樣,動態調整算法中兩個參數實驗,利用max_score評估模型效果。訓練集為70%的檢測結果如圖2和圖3所示。

圖2 測量最佳random_state數值

圖3 測量最佳n_estimators數值
在random_state為160時,模型分數最高。確定random_state數值后,確定n_estimators為190時,模型分數最高。本文采用random_state為160,n_estimators為190的最優模型進行實驗。利用統一數據集進行三次實驗,均為有放回的隨機抓取數據,調整參數后的準確率均有提升,最高結果為0.908,如圖4所示。

圖4 隨機抽樣結果對比
通過利用RandomForest的分類功能建模后,利用最優模型對客戶數據進行分類,通過分類結果1與0預測客戶是否有意愿購買產品,判斷結果為1的客戶分類為有意愿購買,判斷結果為0的客戶為無意愿購買產品,針對兩類客戶提出以下建議:
(1)針對有意愿購買的客戶進行針對型營銷,例如電話營銷、微信營銷等,加大營銷力度,也可通過贈送伴手禮方式對此類客戶進行營銷。對反饋度高的客戶進行定制化營銷。
(2)針對無意愿購買的客戶進行挽留型營銷,了解客戶不夠買的原因,獲取資金閑置時間段,針對資金閑置期再次營銷。每一次與客戶的交流都可形成標簽,供后期統一進行整合及再次分析,形成動態分析效果,最終達成營銷目的。
本文所示模型可應用于更多場景,例如在運維支撐體系中利用模型優化系統,對機房的基礎設施、網絡資源、業務機架等資源進行智能化管理。與原系統聯動,通過訓練時長累計使系統能夠主動發現某些異常數據。為維護人員提供決策依據,實現關聯數據預警管理,確保維護工作的及時性。