重磅风控干货:如何用数据分析监测交易欺诈
重磅風控干貨:如何用數據分析監測交易欺詐
2015-12-15 ?Purefact ?來源??閱?2157??轉?20 轉藏到我的圖書館微信分享:QQ空間QQ好友新浪微博推薦給朋友論壇君 本文作者厚龍,曾參與了“每天一個數據分析師”采訪(詳情請點擊“閱讀原文”),現在互聯網金融風控行業工作。他學以致用,將數據分析應用于交易欺詐,全文干貨滿滿,對于數據分析愛好者是不可多得的一篇好文。 作者:厚龍 本文為CDA數據分析師約稿,如需轉載,請標明來源,否則視為侵權。 交易欺詐一般是指第三方欺詐,即所發生的交易非持卡人本人意愿的交易。通常是不法分子利用各種渠道竊取卡信息,進行偽造卡作案。 一個從盜取信息到套現的整個流程 第三方交易欺詐的特點:使用他卡;在最短時間內大量用卡;一定以獲利為目的;一般有區域集中性。 交易反欺詐模型的特點和難點:海量數據計算、小概率事件、欺詐模式變化快、數據一般是割裂的。 交易識別方法,主要有風控規則引擎、異常檢測、機器學習方法等。
以上方法建立的前提都是欺詐分子可以盜用客戶信息,也可以偽造客戶卡片,但是無法復制客戶的交易行為模式。因此客戶交易行為特征檔案是以上規則建立的基礎。 檔案要求:客戶投資行為和交易模式從各個維度刻畫客戶的行為;隨交易活動實時更新;每個客戶需有唯一檔案。 ——以上假設對于互聯網金融P2P投資而言,難度更大,原因:投資金額的不確定性、投資產品較少,客戶交易行為特征歸納難度大。 (1)風控規則引擎 風控組合規則一般是通過業務經驗及對歷史風險事件的總結形成的反欺詐規則,可以理解為多維組合分析,一般需根據業務成本、對風險的容忍度設置關鍵變量的閾值。 (2)異常可疑交易檢測 異常值模型是用于從大量數據構成的樣本群體中識別出與該群體有顯著差異或者異常情況的樣本的過程。在反欺詐領域,欺詐交易和正常交易有顯著差異,可以用異常模型進行補充,一般是以距離為測量尺度,把樣本關鍵信息標準化為可測信息,進行聚類,聚類中樣本較小的簇確定是否為異常樣本,常用在探索性分析階段。異常樣本與統計學中的離群值概念相似。 (3)機器學習的方法 常用的分類算法都可以應用在此類場景中,比如:神經網絡、貝葉斯方法、決策樹、支持向量機等。不同于一般分類問題的是:“欺詐”這種異常模式(類別)的占比可能非常小(不超過5%,一般低于1%),為保證訓練和測試樣本中包含一定數量的此異常模式記錄,在準備數據時可能需要分層抽樣。 不同于信用評分模型(使用logistic回歸較多),在反欺詐領域,普遍使用神經網絡模型技術,該技術模擬人腦功能的基本特征,適合處理需同時考慮許多因素和條件的非線性問題。神經網絡模型具有識別率高、穩定性強且易于系統落地實施等優點。 網絡一般包含三或更多層,其至少包含的有輸入層、隱含層及輸出層。 比如輸入信息可能為:輸入變量1交易金額、輸入變量2交易時間、輸入變量3產品類型、輸入變量4用戶年齡、輸入變量4近一周交易特定類型失敗交易失敗筆數、本次金額與歷史N次最大交易金額相比、是否歷史常用設備等。 輸出信息為交易評分。可以發現神經網絡中間是個黑箱,它的缺點為業務解釋困難,這要求特征工程提取有較高質量。 建模流程 詳細說明建模過程如下: (1)數據準備方面 一般需考慮現有的數據倉庫或數據集市系統或交易系統、存在于其他外部的數據等。需充分考慮現有數據結構如何、是否具備該數據、當前數據信息量是否足夠、壞樣本是否足夠建模等等,總之,做好數據準備是影響問題解決效率的重要前提。 舉例一般的欺詐交易模型所需數據可能包括:
(2)特征工程方面 a.目標定義:將欺詐數據與交易數據相匹配,欺詐賬戶在欺詐窗口(第一次欺詐日到被發現之日)之間的所有交易即為欺詐性交易; 對非欺詐賬戶,其所有交易即為非欺詐性交易。欺詐賬戶在第一次欺詐日之前的正常交易只為欺詐賬戶建立檔案,但這些正常交易本身并不作為非欺詐性交易進入建模樣本。 b.變量設計:包括原始變量和衍生變量兩種。
過去10分鐘,30分鐘,1小時,2小時…半天,1天,2天…1周…1月等時間段交易的次數或平均金額;當前交易金額與過去若干時間段的交易金額的均值和標準差的對比等等;
賬戶設備號是否為常用設備;賬戶敏感信息有沒有發生過修改;賬戶歷史失敗交易占比等;過去過去2次,3次…10次…N次交易的平均金額;過去2次,3次…10次…N次交易的最大金額;當前交易金額與過去若干次的交易金額的均值,標準差和最大值的對比等等。(衍生變量一般是歷史數據的匯聚,從客戶檔案中提取)。 c.數據處理注意點:WOE代替(分類型變量定量化);時間可劃分為7*24小時建立二維向量。通過這些復雜的變量,可以捕捉到每個賬戶的歷史行為模式,當前交易行為與歷史行為模式的差距,交易發生的速率和動態等等。產生上述變量需要一定時間的交易歷史(6—12月),涉及的交易量龐大,每筆交易的數據量也不小,如何有效地保存,清理,加工這些數據并在此基礎上快速計算所需變量是一個技術關鍵。一般這步之后,有較多的變量,那接下的工作就是變量選擇。 d.變量選擇:由于建模需要構建出大量的變量,有些變量預測能力強,有些變量預測能力弱,不篩選會影響效率。此外,變量的子集很可能高度相關,造成“過擬和”,模型的準確性和可靠性將受到損害。 注:過擬合是指在測試樣本效果佳但由于訓練過度推廣至新樣本效果反而不佳。 以神經網絡模型為例,神經網絡BP算法訓練過程中,不能自動篩選變量(回歸可以,有向前、向后等)。為了找到一組預測能力強、變量之間的相關性弱的變量,不影響模型準確性,增加模型穩定性。變量篩選的方法主要如下:單變量預測能力篩選:靈敏度分析、變量相關性檢查。一般而言,交易反欺詐模型需要輸入變量數遠多于信用評分模型。 (3)模型訓練 按以下步驟訓練神經網絡模型,直至模型效果最佳。 a.對所有設計產生的自變量先進行初步篩選,排除明顯無預測能力的變量,剩余變量在神經網絡模型訓練過程中再進行精選。 b.根據輸入變量的數目,設計合理的網絡結構和隱節點數(關鍵)。一般交易欺詐模型有上百個變量,一層隱含層,十幾個隱含節點。 c.根據設計好的網絡結構,選取合適的訓練參數和收斂條件,在上述第一步數據進一步劃分后的純訓練數據上訓練模型,在測試數據上測試模型效果。 d.在有了初步訓練好的神經網絡模型后,可用靈敏度分析等手段進一步篩選變量。 e.對每個分段(segment),步驟3到步驟5都要重復多次,調整輸入變量,調整隱節點數,調整訓練參數,最后選出一個在測試數據上表現最好的模型作為該分段的最終模型。相對邏輯回歸來說,神經網絡的訓練更加于經驗,如何設計網絡結構、各個參數大小等很重要。 (4)模型驗證及評估 交易驗證及精準率和召回率評估(見下文案例部分介紹)。 交易反欺詐策略:
一個簡單的欺詐監測案例 [ 案例及代碼來源:“Data Mining with R: Learning with Case Studies”] 應用思路 欺詐模型相關的案例較少,考慮商業數據的敏感性,采用案例數據來自“Data Mining with R: Learning with Case Studies”一書,請大家自行百度,理解掌握本案例對有志于從事反欺詐、風險數據分析相關領域的數據分析新手有很大的幫助。另外,R內置此數據大家可以完全可以拿來練手。 具體如下:某公司的銷售員所報告的交易數據。這些銷售員負責銷售該公司的產品并定期報告銷售情況。銷售員可以按照自己的策略和市場情況來自由設置銷售價格。月末,向公司報告銷售情況。數據挖掘應用的目的是根據公司過去發現的交易報告中的錯誤和欺詐企圖,幫助公司完成核實這些銷售報告的真實性的工作。提供一份欺詐率排名報告,這個欺詐率排名將允許公司把有限的檢驗資源分配給系統提示的更“可疑”的那些報告。 案例數據共401146行,每一行包括來自銷售員報告的信息。包括:
(1)了解數據概況 a.顯示前幾行數據,如下: b.初步了解數據特征發現,數據集中有大量的產品和銷售人員信息;同時數據缺失問題存在。 c.觀察下有多少不同的產品和銷售人員:
d.繼續往下看: 下圖各銷售人員交易量波動性很強且不同產品可能有較大差異,但我們還沒有考慮產品數量的影響。
說明:現在我們要做一個假設,短時期內同一產品單位交易價格應該是相對穩定的。產品單價不應該出現巨大變化。——我們偵測欺詐交易的業務邏輯前提,有這個前提,我們需要對每個產品的交易進行分析,找出每個產品的可疑交易。同時我們需要考慮交易量少于20的產品(982種)。 e.下面看看最貴的和最便宜的單位價格對比。 注:我們上圖已經對價格做了對數處理,這是常用的方法,當數據量級不在同一水平時。 f.類似價格,我想看看哪些給公司帶來給多貢獻的銷售人員。 以上數據結果說明:銷售金額前100(不到2%)的銷售人員銷售收入占比超過40%,而近三分之一的銷售人員只貢獻了約2%;而產品方面差異更為顯著,后90%的產品僅貢獻了少于10%的銷量。這個信息對生產十分有用,但并不意味著公司應該停止該產品生產,因為我們沒有生產成本的信息,這些產品有邊際利潤存在的可能,同時也不是本案例的目的。 g.下面進行初步異常偵測,看大概異常比例。 假設:所有產品的單價接近正態分布,即同一產品價格大致相同,它們之間的變化可能是某些銷售人員為了達到他們商業目的而采取的策略。此次先采取箱線圖規則,定義:如果一個觀測值高于上須或低于下須,將其觀測值標記為異常高(低)。上下須定義Q3 1.5*四分位距、Q1-1.5*四分位數,IQR=Q3-Q1。Q3、Q1分別代表75%、25%處的總體水平。對單變量,在有少數離群值時此規則是有效的。經計算約有7%的交易被認為是離群值(異常價格)的交易。 但是我們利用的數據可能本身是有噪聲的,有的數據是缺失的、有的數據尚未進行檢查且占比高,這部分數據需要拿來檢驗異常是危險的,因此,我們需要對數據進行處理,同時考慮更科學的偵測方法。 (2)處理缺失值和少量交易產品的問題 缺失值處理過程略去(不代表不重要),但說明主要采用的方法,對于銷售總價和數量都不存在的樣本進行剔除;而對于僅缺失數量或銷售總價的樣本采用價格中位數進行填補缺失值并重新計算另一變量的方式處理。 (3)處理少量交易的產品 思路:歸入其他產品類。 具體為:嘗試觀測產品單價分布的相似性來推斷其中的一些關系。如果發現有類似價格的產品考慮合并相應交易進行分析,從而尋找異常值。前文講到交易樣本小于20的產品共982種。而比較分布的方法有數據可視化和統計檢驗,鑒于產品種類多,采用統計檢驗方法,考察數據分布的統計特性(集中趨勢和離散程度)離散程度使用中位數、離散程度采用四分位差。采用這兩個指標的原因在于中位數和四分位差較于均值和標準差而言受異常值影響小(大家可以思考為什么?),指標更穩健。
數據顯示如下:許多少數產品的中位數和IQR和其他產品非常相似。然而也有幾種產品不僅交易少,而且價格分布也有較大差異。為了更有效的比較分布我們使用K-S檢驗分布是否來自相同分布,顯著性水平定義為10%。
結果顯示,10%的顯著性水平下,只有117個產品我們可以找到類似產品。 至此數據預處理結束。 目的:運用數據科學方法為確定是否核實這些交易提供指導,對交易欺詐率進行排名,僅處理檢查資源有限范圍內的欺詐交易(排名靠前的若干可疑交易)。解決建模目標的方法是前面所介紹的無監督、有監督、半監督方法,分別介紹其思路如下。在這之前先說下數據現狀:數據Insp列有兩種類型的觀測值,有標記和無標記,而有標記比例不足4%。 我們采用Holdout方法進行抽樣,即將已有數據即分成兩部分,通常比例是70%、30%。一部分用于建模,一部分用于測試并選擇重復多次,選擇3次,保障結果是可靠的。。 但由于樣本特殊性給建模造成了一定困難,即數據不平衡問題,不同類型樣本之間的分布不均衡,即在標記個案上是不平衡的。正常抽樣策略可能導致一個測試集的正常報告與欺詐報告比例不同,這需要采用分層抽樣方法解決,即從不同類型觀測袋子中隨機抽樣,以確保抽取的樣本遵守初始數據的分布。Holdout方法是類似于交叉驗證和蒙特卡羅實驗的另一種實驗控制方法。 模型評級準則:決策精確度(Precision)與召回率(Recall)。 對于我們的案例而言,一個成功模型應得到一個交易排序,其中已知的欺詐交易在頂部,給定一個我們的資源允許檢驗的報告個數K,我們希望在排序的頂部k個位置中,或者只有欺詐交易的報告或者只有未檢驗的報告,同時我們希望所有已知的欺騙報告出現在這k個位置中。但考慮我們目標的特殊性,我們預測的是一個小概率的罕見事件,精確度與召回率是合適的評級指標。給定檢驗限制k,我們可以計算排序的最頂端k個位置的決策精確度與召回率。這個限定值k決定了模型哪些報告應該被檢驗。從監督學習分類的角度去看,我們相當于預測頂端的k個位置預測為fraud類,其余為正常報告。精確度告訴我們頂端k個值多大比例事實上是標記為欺詐的報告。而召回率的值告訴我們k個位置所包含的測試集的欺詐行為比例。同時我們采用悲觀計算的方式,因為前k個樣本中未標記的報告很可能是fraud交易但我們計算精確度和召回是沒有考慮他們的。 同時如果算法沒有顯著提升的情況下,精確度與召回率之間是需要權衡的。因為一般二者是負相關的,給定用于檢驗行為的資源約束條件,我們真正想要的是最大限度的利用資源。這意味著我們可以用x小時檢查報告,并能夠在這x小時捕捉到所有欺詐行為,及時有一定的正常交易我們也不care,因為目的達到了,即我們需要的是使用現有資源達到100%的召回率。而精確度與召回率趨勢是模型性能的可視化表現。通過不同的工作點得到上面統計量的插值,得到該曲線。這些工作點由模型感興趣的類別排序中斷點給出。在我們案例中,這將對于應用在模型所產生的離群值排序上的不同資源限制。對不同的限制水平(即檢驗更少或更多的樣本)進行迭代,得到不同的決策精確度和召回率。--PR圖。 提升圖:x軸模型預測陽性的概率;y軸是召回率比上陽性預測率的商;同時還有累計召回度圖形,該模型曲線余越靠近上方,模型越好;此外,考慮模型排名前面可能包含未標記的樣本,我們要檢驗排序質量的另外方法就是計算評估樣本單位價格和相應產品的標準價格聚類,衡量異常值排名質量。 即我們通過PR圖和lift圖和標準價格距離衡量各建模效果。 (1)無監督方法
局部離群因子系統(LOF):通過估計個案和局部領域的分離程度來得到個案離群值分數。在低密度區域的個案被視為離群值。個案的離群估計值是通過個案之間的距離來獲得的。 對比兩種方法的結果: 對于較低的檢驗限值,LOF是優于Bprule的,同時對于10%的檢驗限值,LOF方法的標準距離明細高于BPrule方法。
(2)有監督方法 類失衡問題解決,采用欠抽樣的方法。如下: 解決類失衡后,分別采用簡單bayes和簡單bayesSmote版本和orh算法解決進行建模結果對比如下:可見兩種方法與聚類方法相比均是令人失望的。 Adaboost方法,組合學習方法,預測值是通過對一組基本模型的預測值進行某種形式的組合形成的,該方法應用一種自適應增強的方法來得到一組基本模型,是一種常見的提高基本性能的方法。它通過一種加權方式提高性能:增加被前一個模型誤分類的個案的權重。經過迭代結果是一組在不同訓練集數據上的基本模型。加權方式應對類失衡問題對學習算法很有意義,即使在初始迭代中有少數個案被模型忽略,它們的權重將會增加,模型被迫學習它們。理論上著將導致得到的組合模型能更精確的預測這些稀有的個案。 Adaboost.M1是其中一種有效算法。建模效果如下: PR曲線而言,對低水平的召回值,精確度明細低于ORh方法,但對本案,累計召回度,與ORh效果接近,說明Adaboost在對類失衡問題下仍有較好的性能。 (3)半監督方法 同時使用檢驗的和沒有檢驗的報告來得到偵測欺詐報告的分類模型。采用自我訓練模型,該方法先用給定標記的個案建立一個初始的分類器,然后應用這個分類器來預測給定訓練集中未標記的個案,將分類器中有較高置信度的預測標簽所對應的個案和預測的標簽一起加入有標記的數據集中。繼續迭代新分類器,直至收斂。三個重要參數,基本訓練模型、分類置信度閾值、收斂準則。我們采用基本訓練模型為簡單Adaboost.M1方法進行自我訓練。 建模效果如下: 在以上嘗試的所有模型中,累計召回曲線最好的明顯哦是自我訓練AdaBoost.M1模型。15%-20%的檢驗限值比例可以確定80%以上的累計召回率。它明細好于其他模型,雖然就精確度而言并不出色,但本案重要的是在有限資源找出欺詐案例。因此該模型式最優的對于我們的建模任務。 |
總結
以上是生活随笔為你收集整理的重磅风控干货:如何用数据分析监测交易欺诈的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 柳青:2017,滴滴实现规模增长和修炼内
- 下一篇: 区块链即数字生产关系