可能有些人還不知道,黃姐姐消失的這幾個月,去生了個孩子。寶寶滿月去打疫苗,被醫院震耳欲聾、此起彼伏的小朋友哭聲嚇到了,回來後哭鬧了好幾天。於是乎,黃姐姐這個新手媽媽開始各種諮詢醫生,老人家,並在網上查:寶寶受到了驚嚇怎麼辦?經過篩選,嘗試了幾種操作性比較強,且不那麼嚇人的方法:
1.安全感:多撫摸,多抱,讓寶寶時常聽到媽媽的聲音;2.吹氣:沖著額頭吹氣,讓寶寶眨眼,重複幾次;3.趴在手臂上睡:一個神奇的抱娃姿勢;4.補充微量元素:主要是鈣和鋅; 5.喫藥:治療「驚悸不眠」的葯《猴棗散》;6.半夜叫魂:晚上寶寶睡著後,唸到:摸摸毛(頭髮),嚇不著;摸頭芯兒,嚇一陣兒;摸摸耳,嚇一會兒;xx回來吧。7.敲牀:敲著牀邊唸到:牀幫牀幫神,俺的小孩丟了魂,您給俺找,您給俺尋,找來交給他母親。8.貼紙:在一張紙上書寫「天皇皇,地皇皇,我家有個夜哭郎。過路君子念三遍,一覺睡到大天亮」,並貼到人來人往的街道上,希望更多的人可以看到並念出來。
1.安全感:多撫摸,多抱,讓寶寶時常聽到媽媽的聲音;
5.喫藥:治療「驚悸不眠」的葯《猴棗散》;
黃姐姐向來以唯物主義者自居,不信什麼鬼神說。所以,當然黃姐姐先是用了方法1-5,三天後並沒有任何改善,於是在第四天,纔在外婆的商(bi)量(po)下,用了方法6-8。
神奇的是,到了第五天,寶寶竟然可以安心睡覺了,而且也不再哭鬧了。
這時,外婆問了句:你覺得,是哪種方法管用了?
黃姐姐實在不想說是6-8管用,便回答個「不知道」敷衍過去了。
其實,這像極了黃姐姐經常被問到的一個問題:從哪個角度可以看出這是個欺詐分子?以及哪個欄位比較好用?
如果單純地從理性分析(暫且忽略鬼神說的不可解釋性),1-8被黃姐姐分成兩組:
組A:1-5;
組B:6-8。
整理一下:組A應用了4天,組B應用了1天,且最終結果為True。
那麼,最終結果為true,可能是組A作用力的累加效果,也可能是組B立竿見影的效果。想要確定,還需要進行重複實驗。確定了組A和組B後,還可以進一步拆分分析。比如,可能是組A的方法1加上組B的方法6起到的作用。
一個著急的母親,會同時採用多種方法來解決寶寶的非正常哭鬧;一個反欺詐從業者,也希望一下子把所有欄位輸入模型,跑出個結果來防範欺詐。但正如黃姐姐所做的,先去掉操作性不強的,再去掉不嚇人的方法;由於一些欄位的雜訊很大,同樣需要我們先予以去除,然後再進行系統的分析。這一過程需要充足的樣本和不斷的思考和實踐,著實費時費力。
不過,基於一些項目經驗,黃姐姐嘗試了很多處理不同list的方法。以下分享幾個比較有效的處理方法。
先科普一下Apriori,以免有些讀者不瞭解。Apriori是關聯關係挖掘一個比較經典的演算法,其一個著名的應用就是指導超市貨架上物品的擺放位置——「尿布啤酒」問題。也就是,通過對顧客購買商品的關聯分析,發現購買了尿布的人中也有很多購買了啤酒。單純想一想覺得很不可思議,而通過調查發現,去超市購買尿布的多為男人。反正也要跑到超市買尿布,索性再給自己捎上兩罐啤酒,算是自己的「跑腿費」了。是的,Apriori演算法對於發現這些可能違背常識的事物和事物之間的內在聯繫是非常有效的。而團夥欺詐,也屬於這一類問題。很多欺詐團夥的作案手法,在被揭發前,也是不為人知且看上去匪夷所思的。但鮮有將Apriori演算法應用於反欺詐的,究其原因,大概是由於關聯濃度過低以至於難於檢測。試想,假設一個平臺,擁有2000萬用戶,其中有100個人,採用(同一IP 10.10.10.10 +同一小時註冊23:00:00+同一手機前綴1880000xxxx)這一組合發起了虛假註冊。如果採用Apriori來計算支持度,可以想像,由於巨大的分母,這一組合的置信度會非常低。這與「尿布啤酒」不同,欺詐檢測的欄位更多,欄位值更豐富,直接運用值(value)來做關聯挖掘,幾乎是不可能完成的事情。這就像把一勺鹽扔進一片海,企圖提高整片海域的鹹度一樣。
對App list的挖掘,也有類似的問題。APP name太多太複雜,直接調用Apriori很難看到效果。但其實我們稍微動動腦筋,就會發現,「尿布啤酒」問題中,我們得到的結論是「尿布」+「啤酒」這一組合常常出現,而不是「青島啤酒」+「幫寶適尿布」,對嗎?相信大家已經看到了問題所在,是的,我們在對App list進行Apriori運算時,採用品類數據可能會更好。事實的確如此,我們可以做如下操作:
以上,便可得到一些比較有趣的組合。例如,黃姐姐發現:
統計分析可以從以下幾個角度進行:
舉個例子,在一個項目中,黃姐姐統計的部分借款類app的odds,如下:
黃姐姐將其分成三個風險等級:高、中、低。並做了人工的keywords提取處理,以涵蓋更多的新app(可能未在統計列表中,以及未來可能會出現的借款app名稱),例如:將「來借貸款」、「借點錢貸款」、「貸款123」和「搜易借貸款」四個的公共詞「貸款」提取出來,作為keyword入模型,其風險等級為「中」,風險係數(odds)為14.88。如此這般,假設有一個新的借款app,名稱叫「黃姐姐誠信貸款」,便也會被納入這一等級,並賦予此風險係數。
此列表需要在每次模型更新時重新計算,建議維護時間為每月或每季度一次。
wifi list主要有兩個用途,一是可以匹配關鍵詞,如「借款」,「貸款」,「錢」等;二是可以對wifi name做聚類,發現那些地理距離很近的人羣,甚至是在同一個房間的人羣。
衍生建議:
Risk_wifi_ssid:是否命中高風險關鍵詞,value = true / false
這裡,我們將簡訊拆成兩個元素:一是簡訊號碼,二是簡訊內容。對簡訊號碼的處理比較簡單,主要是進行統計分析,我們可以這樣:
對於簡訊內容,建議採用兩個極端:極好和極壞。
通訊錄也可拆成兩個元素:一是存儲的暱稱;二是存儲的號碼。這個也是個挺有趣的事情,黃姐姐的項目中,發現有些統計真的讓人匪夷所思。比如,通訊錄4個字暱稱佔比較高的用戶逾期率高;非11位手機號碼佔比高的用戶逾期率也高。這個很難有一個特別合理的解釋,但事實就是如此,就像文章開頭關於叫魂的靈異方法一樣。
Keywords也挺有趣,黃姐姐發現,存儲的暱稱中,如果包含了地址關鍵詞,則逾期率較高;還有些人,爸爸媽媽的號碼就存了十幾個,請問誰是你的親爸親媽?其他都是乾爹?還有一類比較常見的,就是有明顯屬性的詞,例如:貸款中介黃經理。
由於通話詳單數據量通常非常大,所以常常需要先做過濾處理。
過濾方式有兩種:
一是把主叫和被叫都是本產品的客戶的用戶過濾出來;
二是過濾掉被叫時常超過15秒(或其他閾值,根據數量級確定)的通話;
通話詳單可以做如下統計:
以上數據作為羅輯回歸(LR)的輸入,最合適不過,效果很好。
GPS list嚴格來講,應該是GPS網格list。操作方式非常簡單,把目標區域按照一個一個方格劃分(例如:100m*100m),然後根據壞人標籤統計每個方格內的壞人濃度,可以把格子按照黑白灰劃分,或者按照更多的等級劃分,以此來決定是否對某一個方格內的用戶放款,或者將其作為xgboost的一個輸入,效果也很好。
風控建模要處理很多list,對各種list進行合適的處理並衍生出有效的特徵,對模型效果大有裨益,對A卡KS等指標的貢獻也會比較顯著,雖然有些list的組合看起來那麼讓人匪夷所思。但這世間的事,本不是都能解釋的,就像文章開頭,連自詡為堅定的唯物主義者的黃姐姐都開始叫魂了,你還在等什麼?如果將每一種list的處理結果都生成一個風險分,作為A卡的一個輸入,相信你會讓自己的模型起死回生。
BTW:如果有足夠的樣本,黃姐姐真的挺想用機器學習研究下治療小兒驚嚇的方法,會不會成為磚(wu)家(po)呢?哈哈哈……
來個硬廣:
想跟黃姐姐一樣成為風控小巫婆的童鞋,歡迎關注以下招聘信息