姚玲潔



摘要:針對貸款欺詐問題,該文使用隨機森林對真實信用卡貸款數據進行特征排序,采用邏輯斯特回歸構建信用卡反欺詐預測模型,訓練獲得的模型正確率較高,可應用于貸款欺詐預測系統中。
關鍵詞:貸款交易欺詐;機器學習;隨機森林;邏輯斯特回歸;反欺詐
中圖分類號:TP181 文獻標識碼:A
文章編號:1009-3044(2020)14-0260-03
1引言
隨著國家不斷增強對自主創業的支持力度,貸款已經成為一種非常重要的支付手段。然而,犯罪分子也關注到這種便利方法,使用各種虛假信息欺詐銀行或者金融機構。因此構建一個可行性高、便利的交易欺詐預測模型對于維護正常的經濟秩序是必不可少的。
近年,隨著機器學習的深入發展及計算機硬件的處理數據能力不斷提升,不少學者逐漸將關注點聚集在機器學習應用上。關于交易欺詐預測研究,文獻[1]利用模糊神經網絡、并行處理可快速產生欺詐規律信息。文獻[2]利用決策樹、布爾邏輯函數、聚類分析判定欺詐行為。文獻[3]改進Apfiori算法挖掘欺詐交易的規律。文獻[4]將BP神經網絡應用在信用卡反欺詐研究中。文獻[5]提出了一種基于大數據技術的三層反欺詐模型,支持日終批量檢測信用卡的交易異常行為。文獻[6]依賴于專家規則模型進行欺詐交易識別,過度依賴專家制定的規則。文獻[7]先對數據進行數據預處理、再訓練出可實施的五層DBN交易欺詐評分模型。文獻[8]建立了一個基于SVM的反欺詐模型,先將kaggle中的銀行卡消費數據進行預處理、縮放選擇特征,再采用smote算法處理數據集的分布不均問題,調整參數形成最佳的訓練模型后后,準確率達到97.00%。文獻[9]提出了結合規則引擎、數據挖掘模型、人工校驗方法,建立了一套互助互補、更加高效的信用卡反欺詐模式。本文采用機器學習里的隨機森林、邏輯斯特回歸算法應用于貸款交易欺詐判定中。
2貸款欺詐檢測原理
信用卡反欺詐是利用信用卡的歷史交易數據,構建信用卡反欺詐預測模型,提前發現客戶信用卡被盜刷的事件。
3構建機器學習模型
3.1數據預處理
本文使用公開庫kaggle的部分交易數據來訓練及驗證機器學習模型,并將欺詐行為和正常交易行為做出相應的標記。因公開庫的數據量龐大,因此本文隨機抽取284707條數據來做驗證。正常交易信息是284315條,貸款欺詐信息為492條。
如圖1的(a)(b)所示:數據嚴重不平衡,負樣本f欺詐時的值為1的樣本)的數量太少,如果不進行處理,直接用這樣的數據來進行訓練建模,會使得到的模型效果不佳。
因此需進行樣本數據處理,主要有兩種思路。
(1)下采樣
對于數據集中出現的數量嚴重不等的兩類數據,從數量比較多的那類樣本中,隨機選出和數量比較少的那類樣本數量相同的樣本,最終組成正負樣本數量相同的樣本集進行訓練建模。
(2)過采樣
本文使用過采樣的方法把數據擴充到相匹配的程度,去除一些負樣本,使得正負樣本數目接近,從而處理樣本不平衡問題,最后進行訓練學習。由于隨機過采樣采取簡單復制樣本的策略來增加少數類樣本,容易產生模型過擬合的問題,使得模型學習到的信息過于特別而不夠泛化。
本文采用的是隨機過采樣算法的改進方案SMOTE。具體過程是先分離數據中的特征和標簽,再將數據分成訓練數據和測試數據,其比例為7:3,最后利用SMOTE來處理訓練樣本,得到均衡的訓練樣本。
3.2特征工程
特征工程是指自變量x對因變量v有明顯影響作用的特征,特征工程可分為三個方面:特征構建、特征提取、特征選擇。
特征構建是指從原始數據中人工的找出一些具有物理意義的特征。特征提取有多種常用的方法,如主成分分析法、LDA線性判別分析法、ICA獨立成分分析法等。特征選擇是最重要的步驟,是為了剔除不相關或者冗余的特征,減少有效特征的個數,減少模型訓練的時間,提高模型的精確度。本文采用隨機森林算法獲取數據的顯著特征。具體實現過程如下:
首先將目標變量進行可視化,顯示的結果。其次進行特征衍生,特征Time的單位是秒,轉化為以小時為單位對應每天的時間。再進行查看信用卡正常用戶和異常用戶之間的區別。從圖2中可以看出,在貸款欺詐的事件中,部分變量之間的相關性更明顯。其中變量v1、V2、v3、V4、V5、V6、v7、V9、v10、v11、V12、V14、V16、V17和V18以及V19之間的變化在信用卡被盜刷的樣本中呈性一定的規律。另外,詐騙交易、交易金額和交易次數存在如圖3所示關系。
查看數據的維度后,特征從28個縮減到了18個,其中不包含目標變量。最后對特征的重要性進行排序,具體過程為先構建x變量和Y變量,利用隨機森林的feature impo~ance對特征的重要性進行排序,排序結果如圖4所示。
3.3模型訓練
3.3.1樣本不平衡處理
構建自變量和因變量處理樣本不平衡,樣本個數共284807個,正樣本占99.83%,負樣本占0.17%。特征維數為18。
3.3.2構建分類器進行訓練
構建邏輯回歸分類器進行訓練,產生測試集的預測精度分值結果為0.99992。生成混淆矩陣(如圖5)后,測試數據集中的召回度量為0.955284552846,閾值默認值為0.5,繪制ROC曲線。
3.4模型評估與優化
上一個步驟中的模型訓練和測試都在同一個數據集上進行,會導致模型產生過擬合。一般來說,將數據集劃分為訓練集和測試集有3種處理方法:留出法、交叉驗證法、自助法。
本文采用交叉驗證法劃分數據集,將數據劃分為3部分:訓練集、驗證集和測試集。讓模型在訓練集進行學習,在驗證集上進行參數調優,最后使用測試集數據評估模型的性能。模型調優采用網格搜索調優參數,通過構建參數候選集合,網格搜索窮舉各種參數組合,再根據設定評定的評分機制找到最好的那一組設置。最后結合cross-validation和gird search,具體采用scikit learn模塊modd_sdecfion中的GridSearchCV方法。
precision和recall是一組矛盾的變量。從上面混淆矩陣和PRC曲線可以看到,閾值越小,recall值越大,模型能找出信用卡被盜刷的數量也就更多,但換來的代價是誤判的數量也較大。隨著閾值的提高,recall值逐漸降低,precision值也逐漸提高,誤判的數量也隨之減少。通過調整模型閾值,控制模型反信用卡欺詐的力度,若想找出更多的信用卡被盜刷就設置較小的閾值,反之,則設置較大的閾值。
實際業務中,閾值的選擇取決于公司業務邊際利潤和邊際成本的比較;當模型閾值設置較小的值,確實能找出更多的信用卡被盜刷的持卡人,但隨著誤判數量增加,不僅加大了貸后團隊的工作量,也會降低誤判為信用卡被盜刷客戶的消費體驗,從而導致客戶滿意度下降,如果某個模型閾值能讓業務的邊際利潤和邊際成本達到平衡時,則該模型的閾值為最優值。當然也有例外的情況,發生金融危機,往往伴隨著貸款違約或信用卡被盜刷的概率會增大,而金融機構會更愿意不惜一切代價守住風險的底線。
4實驗數據測試
將random_state設置為0,每次切分的數據都一樣,構建參數組合。確定模型Logistic和參數組合param_grid,cv指定10折,使用訓練集學習算法得到測試集的精確度為0.99916。
5總結
本文首先介紹了貸款欺詐的背景,其次講述了近年來學者們應用方法的優缺點,最后描述了如何利用真實的信用卡歷史交易數據,使用機器學習構建信用卡的反欺詐預測模型,從而提前判定信用卡被盜刷的非法行為。從這個模型的測試結果來看,將機器學習可應用于貸款欺詐系統的建立中,能夠降低誤判率,效果良好。