
WePay機(jī)器學(xué)習(xí)反欺詐實(shí)踐:Python+scikit-learn+隨機(jī)森林
什么是shell selling?
雖然欺詐幾乎涉及各種領(lǐng)域,但相對于傳統(tǒng)的買方或賣方僅僅擔(dān)心對方是否是騙子,支付平臺需要擔(dān)心的是交易雙方。如果其中任何一方存在信用詐騙,真正的持卡人發(fā)現(xiàn)和撤銷費(fèi)用,平臺自身就要進(jìn)行賬單償還。
shell selling是在這種情況下特別受關(guān)注的欺詐類型的一種。基本上,當(dāng)交易雙方都帶有欺騙性質(zhì)時(shí),這種模式便會發(fā)生,比如說有一個(gè)犯罪分子用偷來的一個(gè)信用卡賬戶來支付兩筆支付。
shell selling可能很難發(fā)現(xiàn),因?yàn)檫@些欺騙者姿態(tài)很低調(diào)。他們通常沒有多少“真正”的客戶,所以你不能依靠用戶反饋結(jié)果,用這種方式你會碰到更多傳統(tǒng)的欺騙者。當(dāng)一個(gè)商人在一個(gè)很短的時(shí)間段里獲得了來自同一個(gè)IP的一堆付款時(shí),這很明顯,但主導(dǎo)這種欺詐罪行的情況往往比這還要復(fù)雜很多。他們常常使用各種各樣的技術(shù)來隱藏自己的身份和逃避偵測。
由于shell selling是一個(gè)普遍的難題,而且很難被發(fā)現(xiàn),所以我們決定建立一個(gè)機(jī)器學(xué)習(xí)算法來幫助抓住它。
構(gòu)建機(jī)器學(xué)習(xí)算法注意事項(xiàng)
在WePay,我們采用Python建立整個(gè)機(jī)器學(xué)習(xí)的流程,采用流行的scikit-learn開源學(xué)習(xí)機(jī)器學(xué)習(xí)工具包。如果你還沒有使用過scikit-learn,我強(qiáng)烈建議你嘗試。對于欺詐模型這類需要不斷重新訓(xùn)練和快速部署的任務(wù),它有很多優(yōu)點(diǎn):
scikit-learn使用一個(gè)統(tǒng)一的API來跨不同機(jī)器學(xué)習(xí)算法實(shí)現(xiàn)模型擬合與預(yù)測,使得不同算法之間的代碼復(fù)用真正有效。
網(wǎng)絡(luò)服務(wù)(web services)的評分可以利用Django或Flask直接進(jìn)行基于Python的服務(wù)器托管,從而使部署更為簡單。我們只需要安裝scikit-learn,復(fù)制導(dǎo)出模型文件和必要的數(shù)據(jù)處理管道代碼到網(wǎng)絡(luò)服務(wù)實(shí)例用于啟動。
整個(gè)模型的開發(fā)和部署周期完全用Python獨(dú)立編寫。這給了我們一個(gè)超過其他流行機(jī)器學(xué)習(xí)語言像R或SAS的優(yōu)勢,后者需要模型在投入生產(chǎn)之前被轉(zhuǎn)換成另一種語言。除了通過消除不必要的步驟簡化了開發(fā),這還給予我們更多的靈活性來嘗試不同的算法,因?yàn)橥ǔG闆r下,這個(gè)轉(zhuǎn)換過程并不好處理,它們在另一個(gè)環(huán)境中的麻煩會多于價(jià)值。
算法:隨機(jī)森林(Random Forest)
回到shell selling,我們測試了幾種算法,然后選定能給以我們最好的性能的算法:隨機(jī)森林。
隨機(jī)森林是Leo Breiman 和 Adele Cutler開發(fā)的一種基于樹形結(jié)構(gòu)的集成方法,由Breiman于2001年在機(jī)器學(xué)習(xí)期刊的評議文章中首次提出[1]。隨機(jī)森林在訓(xùn)練數(shù)據(jù)的隨機(jī)子集上訓(xùn)練許多決策樹,然后使用單個(gè)樹的預(yù)測均值作為最終的預(yù)測。隨機(jī)子集是從原始的訓(xùn)練數(shù)據(jù)抽樣,通過在記錄級有放回抽樣(bootstrap)和在特征級隨機(jī)二次抽樣得到。
我們嘗試的算法的召回率,隨機(jī)森林提供了最佳的精度,緊隨其后的是神經(jīng)網(wǎng)絡(luò)和另外一種集成方法AdaBoost。相比于其他算法,隨機(jī)森林針對我們碰到的各類欺詐數(shù)據(jù)有許多的優(yōu)勢:
基于集成方法的樹可以同時(shí)很好地處理非線性和非單調(diào)性,這在欺詐信號中相當(dāng)普遍。相比之下,神經(jīng)網(wǎng)絡(luò)對非線性處理地相當(dāng)不錯,但同時(shí)受到非單調(diào)性的羈絆,而邏輯回歸都無法處理。對于使用后兩種方法來處理的非線性和/或非單調(diào)性,我們需要廣泛的和適當(dāng)?shù)?a href='/map/tezheng/' style='color:#000;font-size:inherit;'>特征轉(zhuǎn)換。
隨機(jī)森林需要最小的特征預(yù)備和特征轉(zhuǎn)換,它不需要神經(jīng)網(wǎng)絡(luò)和邏輯回歸要求的標(biāo)準(zhǔn)化輸入變量,也不需要聚類和風(fēng)險(xiǎn)評級轉(zhuǎn)換為非單調(diào)變量。
隨機(jī)森林相比其他算法擁有最好的開箱即用的性能。另一個(gè)基于樹的方法,梯度提升決策樹(GBT),可以達(dá)到類似的性能,但需要更多的參數(shù)調(diào)優(yōu)。
隨機(jī)森林輸出特征的重要性體現(xiàn)在作為模型訓(xùn)練的副產(chǎn)品,這對于特征選擇是非常有用的[2]。
隨機(jī)森林與其他算法相比具有更好的過擬合(overfitting)容錯性,并且處理大量的變量也不會有太多的過擬合[1],因?yàn)?a href='/map/guonihe/' style='color:#000;font-size:inherit;'>過擬合可以通過更多的決策樹來削弱。此外,變量的選擇和減少也不像其他算法那么重要。
下圖是隨機(jī)森林與其競爭對手的對比情況:
訓(xùn)練算法
我們的機(jī)器學(xué)習(xí)流程遵循一個(gè)標(biāo)準(zhǔn)程序,包括數(shù)據(jù)抽取、數(shù)據(jù)清洗、特征推導(dǎo)、特征工程和轉(zhuǎn)換、特征選擇、模型訓(xùn)練和模型性能評價(jià):
洞察
經(jīng)過大量的訓(xùn)練,我們的隨機(jī)森林算法對于shell selling的識別已經(jīng)成為現(xiàn)實(shí),并且積極地阻止欺詐。當(dāng)然我們還需要大量的工作去選擇、訓(xùn)練和部署該算法,但是它已經(jīng)使得我們的風(fēng)險(xiǎn)流程更加健壯,且有能力使用更少的人工來檢查抓住更多的欺詐。在同一欺詐召回率,這一模型的精度是不斷調(diào)整和優(yōu)化規(guī)則的2 – 3倍。
使用這種算法,除了得到明顯的好處以外,我們對于數(shù)據(jù)和建模過程中使用的方法也有了更多的理解:
通過特征選擇的過程,我們發(fā)現(xiàn)對這種欺詐行為最有預(yù)測力的特征是速度型的變量。這些包括用戶的交易量、設(shè)備、真正的IP和信用卡。我們還發(fā)現(xiàn),設(shè)備ID、銀行賬戶和信用卡等賬戶相關(guān)特性都是很有用的,如多個(gè)賬戶登錄到一個(gè)設(shè)備,以及多重提款到一個(gè)銀行賬戶。
風(fēng)險(xiǎn)等級的分類變量,如電子郵件域,應(yīng)用程序ID、用戶的國家,以及一天中的時(shí)間風(fēng)險(xiǎn)評級,也證明了高度預(yù)測性。
數(shù)字足跡諸如瀏覽器語言、操作系統(tǒng)字體、屏幕分辨率、用戶代理、flash版本等對于反欺詐是有點(diǎn)用的。稍微有更多預(yù)測性的是在人們隱藏他們的數(shù)字足跡過程當(dāng)中,例如VPN隧道或虛擬機(jī)和TOR的使用。
我們還發(fā)現(xiàn)模型性能迅速惡化。這真的不是一個(gè)驚喜——騙子不斷改變他們的方法來避免檢測,所以即使是最好的模型,如果不改變也終將過時(shí)。但是我們非常驚訝這發(fā)生的速度有多快。對shell selling而言,在模型訓(xùn)練后僅僅第一個(gè)月精度便下降一半。因此, 經(jīng)常刷新模型來保持高檢測精度對于欺詐檢測的成功是至關(guān)重要的。
不幸的是,頻繁刷新暴露出他們自己的問題。雖然刷新模型盡可能經(jīng)常是理想的,但是在使用最近的事務(wù)數(shù)據(jù)來訓(xùn)練模型時(shí)必須格外小心。欺詐標(biāo)簽可以需要一個(gè)月成熟,所以事實(shí)上使用最近的數(shù)據(jù)也會污染模型。和我們最初的假設(shè)不同,利用最新數(shù)據(jù)在線學(xué)習(xí)并不會總能得到最好的結(jié)果。
隨機(jī)森林是一個(gè)生產(chǎn)高性能模型的優(yōu)異的機(jī)器學(xué)習(xí)算法,然而,它通常被用來作為一個(gè)黑盒方法。這是一個(gè)問題,因?yàn)槲覀儾⒉皇窃噲D要完全削減人類的全部過程,而且很有可能無法做到即使我們愿意。人類分析師總是希望得到原因代碼,告訴他們?yōu)槭裁词虑楸粯?biāo)記之后來引導(dǎo)他們的案件審查。但隨機(jī)森林,就其本身而言,不能隨時(shí)提供原因代碼。解釋模型數(shù)據(jù)是困難的,而且還可能涉及挖掘“森林”的結(jié)構(gòu),這可以顯著提高評分的時(shí)間。實(shí)際上,為了應(yīng)對這個(gè)問題,WePay的數(shù)據(jù)科學(xué)團(tuán)隊(duì)發(fā)明了一種新的私有方法可以從隨機(jī)森林算生成原因代碼,我們?yōu)檫@種方法申請了臨時(shí)專利。
結(jié)論
風(fēng)險(xiǎn)管理技術(shù)是WePay的核心。風(fēng)險(xiǎn)管理不僅僅是技術(shù),它還體現(xiàn)了人類和技術(shù)無縫合作的伙伴關(guān)系。它在很大程度上仍然是人類不得不思考的方式,騙子可以攻擊一個(gè)支付系統(tǒng),編寫規(guī)則來阻止它們,而且還是一個(gè)經(jīng)驗(yàn)豐富的專業(yè)人員,當(dāng)它下跌到 “明顯欺詐”和“顯然合法” 之間的灰色地帶時(shí),它必須像經(jīng)常處理的那樣,做出判斷是否阻止交易。
這就是為什么我們?nèi)绱伺d奮于機(jī)器學(xué)習(xí)和人工智能。我們并非試圖取代人類,只是希望機(jī)器智能更加聰明更好地工作,而我們可以集中人類智慧關(guān)注其他的大難題。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時(shí)代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03