思維導(dǎo)圖
一颠黎、分析問題另锋,明確目標(biāo)
1.風(fēng)險訂單識別模型
-
很多互聯(lián)網(wǎng)公司都是中間商,需要連接用戶與供應(yīng)商狭归,將用戶的訂單提供給供應(yīng)商夭坪,由供應(yīng)商履行訂單
-
但是在這個過程中,很容易會因?yàn)楦鞣N原因使得訂單無法順利完成过椎,這樣的訂單稱為風(fēng)險訂單
2.數(shù)據(jù)挖掘模型的作用
-
通過數(shù)據(jù)挖掘模型室梅,可以提前預(yù)估訂單風(fēng)險的大小,采取有效措施規(guī)避風(fēng)險疚宇,減少風(fēng)險訂單的數(shù)量亡鼠。
-
既可以減少經(jīng)濟(jì)損失,又可以提升用戶體驗(yàn)敷待。
二间涵、模型可行性分析
1.可行性分析的必要性
-
并不是所有的問題都需要使用數(shù)據(jù)挖掘模型或者能夠通過數(shù)據(jù)挖掘模型來解決。
-
在建模之前需要進(jìn)行可行性分析榜揖,沒有進(jìn)行可行性分析就盲目地套用模型勾哩,最終很可能會導(dǎo)致白白地費(fèi)時費(fèi)力
2.建模之前,從哪些方面分析可行性
(1)風(fēng)險訂單識別問題最終可以轉(zhuǎn)化為二分類問題
-
將歷史上的風(fēng)險訂單標(biāo)記為1举哟,將非風(fēng)險訂單標(biāo)記為0思劳,通過模型對所有訂單的風(fēng)險性打分,打分區(qū)間為[0,1]
-
通過模型訓(xùn)練得到閾值妨猩,對超過閾值的訂單進(jìn)行人工/自動干預(yù)潜叛,這樣就將業(yè)務(wù)問題轉(zhuǎn)化為了使用模型可以解決的問題
(2)需要考慮兩個重要因素
-
KPI(關(guān)鍵績效指標(biāo)):在建模前需要明確業(yè)務(wù)方為項(xiàng)目制定的KPI,并且計(jì)算為了實(shí)現(xiàn)KPI模型要達(dá)到的準(zhǔn)確率壶硅、召回率等
-
歷史數(shù)據(jù)量:再強(qiáng)大的模型威兜,也需要通過訓(xùn)練足夠的歷史數(shù)據(jù),從中進(jìn)行學(xué)習(xí)森瘪,最終才能輸出相應(yīng)的結(jié)果
(3)判斷模型可行性的流程
三牡属、選取模型
詳見“基礎(chǔ)知識(八)模型&數(shù)據(jù)挖掘知識——常見模型介紹”
四、選擇變量
1.步驟
-
通過PRD文檔扼睬、業(yè)務(wù)方需求文檔逮栅,建立變量池
-
組織變量討論會,拓寬對業(yè)務(wù)的認(rèn)知窗宇,豐富變量池
-
借助SQL語句從數(shù)據(jù)庫中提取變量措伐,一小部分?jǐn)?shù)據(jù)由業(yè)務(wù)方直接通過表格提供
2.常見的變量分類方法
(1)T+1變量:前一天或更早的數(shù)據(jù),主要是歷史數(shù)據(jù)军俊,對時效性要求不高
-
如:用戶侥加、供應(yīng)商標(biāo)簽畫像數(shù)據(jù),用戶粪躬、供應(yīng)商歷史風(fēng)險訂單担败,供應(yīng)商被投訴情況等
(2)實(shí)時變量:短時間內(nèi)獲取的最新數(shù)據(jù)昔穴,通常延遲在5分鐘以內(nèi),對實(shí)時性有較高要求
-
如:用戶當(dāng)天的行為數(shù)據(jù)提前,供應(yīng)商實(shí)時庫存緊張程度
五吗货、特征工程
-
選擇好變量之后,對這些變量進(jìn)行處理狈网,稱為特征工程
1.驗(yàn)證邏輯
-
特征工程中必要的步驟宙搬,特別是在添加某一變量使模型效果得到了極大提升之后
常見的邏輯錯誤:
-
因果關(guān)系倒置,將結(jié)果作為變量放入模型中
-
忽略模型上線后變量計(jì)算的時效性
-
在取數(shù)過程中出現(xiàn)錯誤
2.缺失值處理
(1)對于一些模型(如XGBoost模型)拓哺,在符合邏輯勇垛、確保缺失值具有一定意義的前提下,可以不做處理士鸥,其他情況都需要進(jìn)行處理闲孤。
-
例如:風(fēng)險訂單模型中,通常服務(wù)統(tǒng)計(jì)指標(biāo)缺失的供應(yīng)商為低頻供應(yīng)商烤礁,保留其空值崭放,在一定程度上反而是最好的處理方法
(2)常見的缺失值處理方法
-
用特定值表示(如-9999)
-
統(tǒng)計(jì)插值(均值、中值鸽凶、眾數(shù)),適用于數(shù)值型變量
-
模型插值:SKNN建峭,參考最臨近的k個值進(jìn)行填補(bǔ)玻侥;EM聚類,選擇不存在缺失值的變量進(jìn)行聚類亿蒸,根據(jù)所在類的其他值進(jìn)行填補(bǔ)
3.異常值處理
(1)異常值處理的必要性
-
判斷業(yè)務(wù)邏輯在取數(shù)計(jì)算過程中是否出現(xiàn)錯誤
-
Hive取數(shù)時的join操作可能會因?yàn)橐粚Χ嗟膶?yīng)關(guān)系而出現(xiàn)重復(fù)數(shù)據(jù)凑兰,需要隨時驗(yàn)證數(shù)據(jù)的唯一性
(2)統(tǒng)計(jì)方法:3σ、盒形圖边锁、分位數(shù)
(3)模型方法:iForest(孤立森林)姑食,每次隨機(jī)劃分屬性和劃分點(diǎn)(值)時都是隨機(jī)的,計(jì)算樣本所處節(jié)點(diǎn)的深度茅坛,深度越小越可能為異常值
(4)常見的異常值處理方法
-
刪除異常數(shù)據(jù)所在的記錄
-
將異常值記為缺失值音半,用填補(bǔ)缺失值的方法進(jìn)行處理
六、建立模型&效果評估
詳見前面Python贡蓖、R部分
七曹鸠、模型上線&迭代
1.模型上線前
-
通常需要將模型封裝成特定的模型文件交由開發(fā)部門,開發(fā)部門定時調(diào)用模型文件
-
常用方法:將機(jī)器學(xué)習(xí)/數(shù)據(jù)挖掘模型打包成PMML文件
-
另外斥铺,需要提前制定好監(jiān)控策略彻桃,保證模型效果在可控范圍內(nèi)
2.PMML
-
PMML(Predictive Model Markup Language)是一種通用的基于XML的預(yù)測模型標(biāo)記語言
-
使用PMML能夠做到:
-
任何語言都可以調(diào)用模型
-
不存在調(diào)用的通信消耗
-
直接部署上線,無須二次開發(fā)
-
支持?jǐn)?shù)據(jù)轉(zhuǎn)換晾蜘,比如標(biāo)準(zhǔn)化與one-hot編碼等
-
2.模型迭代
-
模型上線并不代表項(xiàng)目結(jié)束邻眷,還要針對模型上線后的表現(xiàn)進(jìn)行迭代及修正
-
隨著模型的上線眠屎,此前很多有著非常重要作用的變量其重要性逐漸減弱
-
需要時刻保持對模型的迭代,并在相應(yīng)的代碼管理平臺及時更新代碼肆饶,做好模型版本編號改衩,以此形成一個完整的閉環(huán)
參考文獻(xiàn)
1.《拿下Offer 數(shù)據(jù)分析師求職面試指南》徐麟 著