最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

金融風控面試題目(二)

2022-02-27 11:14 作者:python風控模型  | 我要投稿


在公眾號「python風控模型」里回復關鍵字:學習資料?

QQ學習群:1026993837 領學習資料? ??

一、機器學習面試(74?題)

1.1?簡單介紹下?logistics?回歸
邏輯回歸是一種二分類模型,是在線性模型外面套一個 sigmoid 函數(shù),得到的是處于[0,1]
之間的概率值。Logistic 回歸目的是從特征學習出一個 0/1 分類模型,而這個模型是將特性
的線性組合作為自變量,由于自變量的取值范圍是負無窮到正無窮。因此,使用 logistic 函
數(shù)(或稱作 sigmoid 函數(shù))將自變量映射到(0,1)上,映射后的值被認為是屬于 y=1 的概率。
1.2?如何理解模型的欠擬合?以及如何處理?
訓練誤差和驗證誤差都很大,這種情況稱為欠擬合。出現(xiàn)欠擬合的原因是模型尚未學習到數(shù)
據(jù)的真實結構。
解決辦法
1 做特征工程,添加跟多的特征項。
2 增加模型復雜度。
3 集成學習方法 boosting(如 GBDT)能有效解決高偏差問題
1.3?如何理解模型的過擬合?以及如何處理?
過擬合(overfiting / high variance)
模型在訓練集上表現(xiàn)很好,但是在驗證集上卻不能保持準確,也就是模型泛化能力很差。這
種情況很可能是模型過擬合。
造成原因主要有以下幾種:
1 訓練數(shù)據(jù)集樣本單一,樣本不足。
2 訓練數(shù)據(jù)中噪聲干擾過大。
3 模型過于復雜。
對應的預防和解決辦法如下:
1 在訓練和建立模型的時候,從相對簡單的模型開始,不要一開始就把特征做的非常多,模
型參數(shù)跳的非常復雜。
2 增加樣本,要覆蓋全部的數(shù)據(jù)類型。數(shù)據(jù)經(jīng)過清洗之后再進行模型訓練,防止噪聲數(shù)據(jù)干
擾模型。
3 正則化。在模型算法中添加懲罰函數(shù)來防止過擬合。常見的有 L1,L2 正則化。
4 集成學習方法 bagging(如隨機森林)能有效防止過擬合
5 減少特征個數(shù)(不是太推薦)
1.4?泛化誤差
泛化誤差是訓練集上的表現(xiàn)與測試集上表現(xiàn)的差值,由 3 個部分組成:偏差、方差和噪聲。
偏差度量模型的擬合能力,也就是模型預測結果與真實結果的偏離程度;方差度量數(shù)據(jù)擾動
造成的影響,也就是同樣大小的數(shù)據(jù)集變動所造成的學習能力變化;噪聲則刻畫問題本身的
擬合難度。
1.5?經(jīng)驗風險與結構風險
經(jīng)驗風險是對模型錯誤程度的量化指標,衡量的是偏差。以線性模型為例,輸出的預測結果
與真實結果差值的平方求均值。經(jīng)驗風險越小,模型效果越好。
但是模型除了要在訓練集表現(xiàn)好,還要再測試集也有很好的魯棒性(即泛化能力較好)。為
應對這種由于模型結構太復雜而導致的過擬合問題,為損失函數(shù)增加一個正則項,用來懲罰
5


模型的復雜度。從而讓模型的結構足夠簡單,避免過擬合問題。
1.6?哪些機器學習算法不需要做歸一化
(1)樹模型不需要歸一化,因為他們不關心變量的值,更關心排序或者分布,比如決策樹、
隨機森林、XGBoost 等。
(2)需要歸一化的模型包括兩類:
①基于距離計算的模型,比如 KNN
②通過梯度下降法求解的模型,比如邏輯回歸
1.7?樹形結構為什么不需要歸一化?
因為數(shù)值縮放不影響分裂點位置,對樹模型的結構不造成影響。
樹模型按照特征值進行排序,排序的順序不變,那么所屬的分支以及分裂點就不會變化。
而且樹模型不能進行梯度下降,比如回歸樹模型,尋找最優(yōu)點是通過尋找最優(yōu)分裂點完成的,
樹模型是階躍的不可導,而且求導也沒有意義,也就不需要歸一化處理。
1.8?非樹形模型為什么需要歸一化?
非樹形模型,比如 SVM、LR、KNN、KMeans 這些模型是需要歸一化的
對于線性模型,特征值差別很大時,比如 LR,我們有兩個特征,一個是(0,1),一個是
(0,10000)的,運用梯度下降的時候,損失等高線是橢圓形,需要迭代很多次才能達到最
優(yōu)點。如果進行了歸一化處理,那么等高線就是圓形,從而導致迭代次數(shù)變少很多。
1.9?什么是標準化和歸一化?
標準化就是均值為 0,方差為 1,公式是 x-mean / std
歸一化是把每個特征的值都縮放到相同的數(shù)值范圍,比如[0,1],
公式為 x - x.min() / x.max() -x.mean()
1.10?數(shù)據(jù)歸一化或者標準化的原因是什么?
進行歸一化是各維度的量綱不同,我理解能不歸一化最好不歸一化
有些模型在各維度進行不均勻的伸縮之后,最優(yōu)解與原來不等價需要歸一化,比如 SVM。
有些模型伸縮后,最優(yōu)解不變,理論上可以不歸一化,比如 LR。但是,實際中往往通過迭
代求解模型參數(shù),如果量綱太高就相當于一個很扁的高斯模型,迭代算法有可能發(fā)生不收斂
的情況,所以最好先歸一化。
1.11?邏輯回歸為什么要對特征進行離散化(分箱)
做風控模型一般是通過“海量離散特征+簡單模型”同“少量連續(xù)特征+復雜模型”
工業(yè)界很少將連續(xù)值作為邏輯回歸模型的特征輸入,而是將連續(xù)特征離散化為一系列 0、1
的特征交給 LR 模型。這樣做的優(yōu)勢:
1 離散后的特征對于異常數(shù)據(jù)有很好的魯棒性,比如年齡>30,是 1,否則是 0,如果有個人
年齡是 500,也不會對模型有什么影響;
2 易于模型快速迭代,離散特征的增加和減少都很容易;
3 運行速度快,稀疏向量內積乘法運算速度快,計算結果方便存儲;
4 引入非線性,表達能力增強。這里可以分成兩類,做 onehot 處理,將單個變量離散化成
N 個之后,每個變量有單獨權重,相當于引入非線性;第二類,離散后進行特征交叉,由
M+N 個向量變成 M*N 個向量,進一步引入非線性。
6


5 離散化之后,模型跟穩(wěn)定。比如 20-30 歲作為一個區(qū)間,不會因為某個人長了一歲,就突
然成為一個完全不同的人。但是 30 歲 31 歲這種臨界值就很尷尬,所以怎么來確定邊界很重

1.12?說說梯度下降法
梯度下降法(Gradient descent)是一個一階最優(yōu)化算法,在單變量的實值函數(shù)的情況,梯度
就是導數(shù)。要使用梯度下降法找到一個函數(shù)的局部極小值,必須向函數(shù)上當前點對應梯度(或
者是近似梯度)的反方向的規(guī)定步長距離點進行迭代搜索。
1.13?梯度下降法、牛頓法和擬牛頓法
梯度下降法求一階導數(shù),缺點是步幅難以確定;
牛頓法求二階導,用到海森矩陣,速度快,缺點是求海森矩陣的逆比較麻煩;
為了解決海森矩陣求逆問題,產(chǎn)生了擬牛頓法,不求二階導,構造近似的海森矩陣。
邏輯回歸用的是梯度下降法,xgboost 用的是牛頓法
1.14?LR?和線性回歸的區(qū)別和聯(lián)系
LR 在線性回歸的實數(shù)范圍輸出值上施加 sigmoid 函數(shù)將值收斂到 0~1 范圍, 其目標函數(shù)也因
此從差平方和函數(shù)變?yōu)閷?shù)損失函數(shù)。邏輯回歸和線性回歸首先都是廣義的線性回歸,
其次經(jīng)典線性模型的優(yōu)化目標函數(shù)是最小二乘,而邏輯回歸則是似然函數(shù),
另外線性回歸在整個實數(shù)域范圍內進行預測,敏感度一致,而分類范圍,需要在[0,1]。邏輯
回歸就是一種減小預測范圍,將預測值限定為[0,1]間的一種回歸模型,因而對于這類問題來
說,邏輯回歸的魯棒性比線性回歸的要好。
1.15?簡單說下有監(jiān)督學習和無監(jiān)督學習的區(qū)別
有監(jiān)督學習:對具有標記的訓練樣本進行學習,以盡可能對訓練樣本集外的數(shù)據(jù)進行分類預
測。(LR,RF,GBDT)
無監(jiān)督學習:對未標記的樣本進行訓練學習,比發(fā)現(xiàn)這些樣本中的結構知識。(KMeans,PCA)
1.16?機器學習中的正則化到底是什么意思?
L1 正則化和 L2 正則化可以看做是損失函數(shù)的懲罰項。所謂『懲罰』是指對損失函數(shù)中的某
些參數(shù)做一些限制。對于線性回歸模型,使用 L1 正則化的模型建叫做 Lasso 回歸,使用 L2
正則化的模型叫做 Ridge 回歸(嶺回歸)。L1 正則化是指權值向量 w 中各個元素的絕對值
之和,通常表示為||w||1。L2 正則化是指權值向量 w 中各個元素的平方和然后再求平方根
(可以看到 Ridge 回歸的 L2 正則化項有平方符號),通常表示為||w||2。L1 正則化可以產(chǎn)
生稀疏權值矩陣,即產(chǎn)生一個稀疏模型,可以用于特征選擇。L2 正則化可以防止模型過擬
合(overfitting)。當然,一定程度上,L1 也可以防止過擬合。
1.17?說說常見的損失函數(shù)
常用的損失函數(shù)有以下幾種(基本引用自《統(tǒng)計學習方法》):

1.18?為什么?xgboost?要用泰勒展開,優(yōu)勢在哪里
xgboost 使用了一階和二階偏導, 二階導數(shù)有利于梯度下降的更快更準. 使用泰勒展開取得
函數(shù)做自變量的二階導數(shù)形式, 可以在不選定損失函數(shù)具體形式的情況下, 僅僅依靠輸入數(shù)
據(jù)的值就可以進行葉子分裂優(yōu)化計算, 本質上也就把損失函數(shù)的選取和模型算法優(yōu)化/參數(shù)
選擇分開了. 這種去耦合增加了 xgboost 的適用性, 使得它按需選取損失函數(shù), 可以用于分
類, 也可以用于回歸。
1.19?協(xié)方差和相關性有什么區(qū)別
相關性是協(xié)方差的標準化格式。比如已經(jīng)算出 x、y 的協(xié)方差,協(xié)方差除以 x、y 的方差,就
得到相關性。
1.20?xgboost?如何尋找最有特征?有放回還是無放回呢?
xgboost 在訓練的過程中給出各個特征的增益評分,最大增益的特征會被選出來作為分裂依
據(jù), 從而記憶了每個特征對在模型訓練時的重要性 -- 從根到葉子中間節(jié)點涉及某特征的次
數(shù)作為該特征重要性排序。
xgboost 屬于 boosting 集成學習方法, 樣本是不放回的, 因而每輪計算樣本不重復. 另一方面,
xgboost 支持子采樣, 也就是每輪計算可以不使用全部樣本, 以減少過擬合. 進一步地,
xgboost 還有列采樣, 每輪計算按百分比隨機采樣一部分特征, 既提高計算速度又減少過擬
合。
1.21?L1?和?L2?的區(qū)別以及分別服從什么分布
L1 是拉普拉斯分布,L2 是高斯分布。
L1 范數(shù): 為 x 向量各個元素絕對值之和;L2 范數(shù): 為 x 向量各個元素平方和的 1/2 次方。
8


L1 范數(shù)可以使權值稀疏,方便特征提??;L2 范數(shù)可以防止過擬合,提升模型的泛化能力。
L1 和 L2 的差別,一個讓絕對值最小,一個讓平方最小,會有那么大的差別呢?看導數(shù)一個
是 1 一個是 w 便知, 在靠進零附近, L1 以勻速下降到零, 而 L2 則完全停下來了. 這說明 L1
是將不重要的特征盡快剔除, L2 則是把特征貢獻盡量壓縮最小但不至于為零. 兩者一起作用,
就是把重要性在一個數(shù)量級的那些特征一起平等共事(簡言之, 不養(yǎng)閑人也不要超人)。
1.22?防止過擬合的方法
過擬合的原因是算法的學習能力過強;一些假設條件過于可能是不成立的,比如樣本獨立同
分布;訓練樣本過少,不能對整個空間進行分布估計。
處理方法:
1 早停:如果在訓練中多次迭代后發(fā)現(xiàn)模型性能沒有有顯著提高就停止訓練
2 數(shù)據(jù)集擴增:原有數(shù)據(jù)增加、重采樣等
3 正則化,正則化可以限制模型復雜度
4 交叉驗證
5 特征選擇
6 創(chuàng)建一個驗證集是最基本的防止過擬合的方法
1.23?什么是最小二乘法?
就是最小平方法,預測結果與真實結果差額的平方和,取最小值。
1.24?怎么理解決策樹、xgboost?能處理缺失值?而有的模型對缺失值比較敏感。
工具包自動處理數(shù)據(jù)缺失不代表具體的算法可以處理缺失項。
決策樹一般用中位數(shù)或者眾數(shù)來替換。xgboost 把缺失值當做稀疏矩陣來對待,本身的在節(jié)
點分裂時不考慮的缺失值的數(shù)值。缺失值數(shù)據(jù)會被分到左子樹和右子樹分別計算損失,選擇
較優(yōu)的那一個。如果訓練中沒有數(shù)據(jù)缺失,預測時出現(xiàn)了數(shù)據(jù)缺失,那么默認被分類到右子
樹。
1.25?特征工程包括哪些內容
數(shù)據(jù)和特征決定了機器學習的上限,而模型和算法只是逼近這個上限而已。
基礎特征構造、數(shù)據(jù)預處理、特征衍生、特征變換、特征篩選
1.26?特征選擇有哪些
特征選擇有兩個原因:一是減少特征數(shù)量,使模型泛化能力更強,減少過擬合;二是增強對
特征和特征值之間的理解
特征選擇包括三種方法,過濾法、嵌入法和包裝法。
1 Filter:過濾法,按照發(fā)散性或者相關性對各個特征進行評分,設定閾值或者待選擇閾值的
個數(shù),選擇特征,包括方差過濾和相關性過濾,相關性過濾包括卡方、F 檢驗和互信息法。
2 Embedded 嵌入法,相當于過濾法+模型訓練得分,根據(jù)特征重要性刪除特征,用自定義模

3 Wrapper 包裝法,比嵌入法快,每次刪除部分特征后,重新計算特征重要性,模型是黑箱。
1.27?工作中的特征選擇
風控工作中很少用過濾法這種方法。一般利用變量重要性、單調性、共線性和穩(wěn)定性來篩選

變量。
1 變量重要性
IV 值、卡方檢驗、模型篩選(xgboost 的特征重要性)這三種方法用一種就好了,這里我們
使用 IV 值或者模型篩選多一點
2 共線性
相關系數(shù)和共線性:皮爾遜相關系數(shù) COR 比如 0.75,但是太主觀;方差膨脹系數(shù) VIF,如
果小于 10 就沒有多重共線性,可以接受,反之是需要刪除的。
3 單調性 bivar 圖
4 穩(wěn)定性
PSI 和跨時間交叉檢驗,變量的 PSI 越小越好,大于 0.25 的變量可以考慮刪除。
1.28?數(shù)據(jù)預處理
1. 缺失值,填充缺失值 fillna:
i. 離散:None,
ii. 連續(xù):均值。
iii. 缺失值太多,則直接去除該列
2. 連續(xù)值:離散化。
3. 對定量特征二值化。核心在于設定一個閾值,大于閾值的賦值為 1,小于等于閾值的賦值
為 0。
4. 皮爾遜相關系數(shù),去除高度相關的列
1.29?什么是?auc?
ROC 曲線是以真正率為縱軸,假正率為橫軸的一條曲線。ROC 曲線與橫坐標之間的面積就是
我們 AUC 值。AUC 反應的是分類器對樣本的排序能力
預測
1 0
1 TP 真正類 FN 假負類
真實
0 FP 假正類 TN 真負類
真正率=(真正類的數(shù)量)/(真正類的數(shù)量+假負類的數(shù)量)
假正率=(假正類的數(shù)量)/(假正類的數(shù)量+真負類的數(shù)量)
1.30?怎么處理數(shù)據(jù)不平衡問題
下探
半監(jiān)督學習
標簽分裂
代價敏感
采樣算法
1.31?特征比數(shù)據(jù)量還大時,選擇什么樣的分類器

線性分類器,因為維度高的時候,數(shù)據(jù)一般在維度空間里面會比較稀疏,很有可能線性可分
1.32?邏輯回歸的優(yōu)缺點
優(yōu)點:
1)速度快;2)簡單易于理解,直接看到各個特征的權重;3)能容地更新模型吸收新的數(shù)
據(jù);4)如果想要一個概率框架,動態(tài)調整分類閾值。
缺點:特征處理復雜。需要歸一化和較多的特征工程。
1.33?說說常見的優(yōu)化算法及其優(yōu)缺點
1)隨機梯度下降
優(yōu)點:容易陷入局部最優(yōu)解;缺點:收斂速度較快
2)批量梯度下降
優(yōu)點:可以一定程度上解決局部最優(yōu)解的問題;缺點:收斂速度較慢
3)牛頓法
優(yōu)點是更精確;缺點是牛頓法在迭代的時候,需要計算海森矩陣,當維度較高的時候,計算
海森矩陣比較困難。
4)擬牛頓法
擬牛頓法是為了改進牛頓法在迭代過程中,采用的方式是通過逼近 Hessian 的方式來進行求
解。
1.34?RF?和?GBDT?之間的區(qū)別與聯(lián)系
1)相同點:都是由多棵樹組成,最終的結果都是由多棵樹一起決定。
2)不同點:
a 組成隨機森林的樹可以分類樹也可以是回歸樹,而 GBDT 只由回歸樹組成;
b 組成隨機森林的樹可以并行生成,而 GBDT 是串行生成
c 隨機森林的結果是多數(shù)表決表決的,而 GBDT 則是多棵樹累加之和
d 隨機森林對異常值不敏感,而 GBDT 對異常值比較敏感
e 隨機森林是減少模型的方差,而 GBDT 是減少模型的偏差
1.35?請具體說說?Boosting?和?Bagging?的區(qū)別
1)樣本選擇上:
Bagging 是有放回選取的,從原始集中選出的各輪訓練集之間是獨立的。
Boosting:每一輪的訓練集不變,只是訓練集中每個樣例在分類器中的權重發(fā)生變化。而權
值是根據(jù)上一輪的分類結果進行調整。
2)樣例權重:
Bagging:使用均勻取樣,每個樣例的權重相等
Boosting:根據(jù)錯誤率不斷調整樣例的權值,錯誤率越大則權重越大。
3)預測函數(shù):
Bagging:所有預測函數(shù)的權重相等。
Boosting:每個弱分類器都有相應的權重,對于分類誤差小的分類器會有更大的權重。
4)并行計算:
Bagging:各個預測函數(shù)可以并行生成
Boosting:各個預測函數(shù)只能順序生成,因為后一個模型參數(shù)需要前一輪模型的結果。
11



1.36?邏輯回歸相關問題
邏輯回歸用一句話概括就是,邏輯回歸假設數(shù)據(jù)服從伯努利分布,通過極大化似然函數(shù)的方
法,運用梯度下降來求解參數(shù),來解決二分類的問題。
1 邏輯回歸的損失函數(shù)
損失函數(shù)即它的極大似然函數(shù)
對似然函數(shù)取對數(shù)就轉換為最常見的形式
2 邏輯回歸的求解方法
由于對應的極大似然函數(shù)無法直接求解,常用的方法是使用梯度下降法來不斷逼近最優(yōu)解
3 邏輯回歸是如何分類的 ?
邏輯回歸通過 logistic 函數(shù)將一個范圍不定的連續(xù)值映射到 (0, 1) 的區(qū)間內,然后劃定一
個閾值,輸出值大于這個閾值的是一類,小于這個閾值的是另一類。閾值會根據(jù)實際情況選
擇,一般會選擇 0.5。
1.37?邏輯回歸的優(yōu)缺點總結
優(yōu)點:
1. 結構簡單,可解釋性強,從特征的權重可以看到不同特征對最后結果的影響。
2. 訓練速度快,分類時,計算量只和特征數(shù)目相關,占用計算資源少。
3. 輸出結果方便調整,結果都是概率值,可以很容易調整閾值實現(xiàn)分類。
4. 效果不錯,只要特征工程做的好,效果就不會太差。
缺點:
1. 準確率不是太高,因為結構簡單,很難擬合復雜數(shù)據(jù)的真實分布。
2. 很難處理數(shù)據(jù)不平衡的問題,如果正負樣本的比例差距較大,模型區(qū)分能力不會很好。
3. 處理非線性數(shù)據(jù)比較麻煩,在不引入其他方法的情況下,只能處理線性可分的數(shù)據(jù)。
1.38?什么是共線性,跟過擬合有什么關聯(lián)
共線性:多變量線性回歸中,變量之間由于存在高度相關關系而使回歸估計不準確。
共線性會造成冗余,導致過擬合。
解決方法:排除變量的相關性/加入權重正則。
1.39?機器學習中,有哪些數(shù)據(jù)預處理和特征選擇的工程方法
1 數(shù)據(jù)預處理
1)無量綱化
①標準化②區(qū)間縮放法(歸一化)
2) 對定量特征二值化
3)對定性特征啞編碼
4)缺失值計算
12


5)數(shù)據(jù)變換
2 特征選擇
1)Filter 過濾法
① 方差選擇法② 相關系數(shù)法③卡方檢驗④互信息法
2)Embedded 嵌入法
3)Wrapper 遞歸特征消除法或者包裝法
1.40?什么是偏差和方差
泛化誤差可以分解成偏差的平方加上方差加上噪聲。偏差度量了學習算法的期望預測和真實
結果的偏離程度,刻畫了學習算法本身的擬合能力,方差度量了同樣大小的訓練集的變動所
導致的學習性能的變化,刻畫了數(shù)據(jù)擾動所造成的影響,噪聲表達了當前任務上任何學習算
法所能達到的期望泛化誤差下界,刻畫了問題本身的難度。偏差和方差一般稱為 bias 和
variance,一般訓練程度越強,偏差越小,方差越大,泛化誤差一般在中間有一個最小值,
如果偏差較大,方差較小,此時一般稱為欠擬合,而偏差較小,方差較大稱為過擬合。
1.41?解決?bias?和?Variance?問題的方法是什么
高偏差, 可以用 boosting 模型, 對預測殘差進行優(yōu)化, 直接降低了偏差. 也可以用高模型容
量的復雜模型(比如非線性模型, 深度神經(jīng)網(wǎng)絡), 更多的特征, 來增加對樣本的擬合度.
高方差, 一般使用平均值法, 比如 bagging, 或者模型簡化/降維方法, 來降低方差.
1.42?決策樹怎么給特征評分
cart 樹通過 Gini 指數(shù)選擇分離點的特征,一個特征被選中的次數(shù)越多,那么該特征評分越高。
1.43?請寫出你了解的機器學習數(shù)據(jù)預處理
數(shù)據(jù)預處理
1.數(shù)據(jù)選擇、清洗、采樣
- 數(shù)據(jù)格式化;
- 數(shù)據(jù)清洗,填充缺失值、去掉臟數(shù)據(jù),將不可信的樣本丟掉,缺省值極多的字段考慮不用;
- 采樣:針對正負樣本不平衡的情況,當正樣本遠大于負樣本時,且量都很大時,使用下采
樣,量不大時,可采集更多的數(shù)據(jù)或 oversampling 或修改損失函數(shù);采樣過程中可利用分層
抽樣保持不同類別數(shù)據(jù)的比例。
2.不同類型數(shù)據(jù)的特征處理
- 數(shù)值型:幅度調整/歸一化、log 等變化、統(tǒng)計值(例如 max、min、mean、std)、離散化、
分桶等
- 類別型:one-hot 編碼等
- 時間型: 提取出連續(xù)值的持續(xù)時間和間隔時間;提取出離散值的“年”、“月”、“日”、
“一年中哪個星期/季度”、“一周中的星期幾”、“工作日/周末”等信息
- 文本型:使用 tf-idf 特征
- 統(tǒng)計型:加減平均、分位線、次序、比例
1.44?給你一個有?1000?列和?1?百萬行的訓練數(shù)據(jù)集。這個數(shù)據(jù)集是基于分類問題的。經(jīng)理要
求你來降低該數(shù)據(jù)集的維度以及減少模型計算時間。你的機器內存有限。你會怎么做?
1.首先要關閉機器上正在運行的其他程序,比如網(wǎng)頁瀏覽器。
2.我們可以隨機采樣數(shù)據(jù)集。這意味著,我們可以創(chuàng)建一個較小的數(shù)據(jù)集,比如有 1000 個

變量和 30 萬行,然后做計算。
3.為了降低維度,我們可以把數(shù)值變量和分類變量分開,同時刪掉相關聯(lián)的變量。對于數(shù)值
變量,我們將使用相關性分析。對于分類變量,我們可以用卡方檢驗。
4.利用 Stochastic GradientDescent(隨機梯度下降)法建立線性模型也很有幫助。
1.45?給你一個數(shù)據(jù)集,這個數(shù)據(jù)集有缺失值,且這些缺失值分布在離中值有?1?個標準偏差
的范圍內。百分之多少的數(shù)據(jù)不會受到影響?為什么?
由于數(shù)據(jù)分布在中位數(shù)附近,讓我們先假設這是一個正態(tài)分布。我們知道,在一個正態(tài)分布
中,約有 68%的數(shù)據(jù)位于跟平均數(shù)(或眾數(shù)、中位數(shù))1 個標準差范圍內的,那樣剩下的約
32%的數(shù)據(jù)是不受影響的。因此,約有 32%的數(shù)據(jù)將不受到缺失值的影響。
1.46?真陽性率和召回有什么關系?寫出方程式
預測
1 0
1 TP 真正類 FN 假負類
真實
0 FP 假正類 TN 真負類
真正率=(真正類的數(shù)量)/(真正類的數(shù)量+假負類的數(shù)量)
假正率=(假正類的數(shù)量)/(假正類的數(shù)量+真負類的數(shù)量)
真陽性率=召回。是的,它們有相同的公式(TP / TP + FN)。
1.47?在分析了你的模型后,經(jīng)理告訴你,你的模型有多重共線性。你會如何驗證他說的是
真的?再不缺失任何信息的情況下,你能建立一個更好的模型嗎?
要檢查多重共線性,我們可以創(chuàng)建一個相關矩陣,用以識別和除去那些具有 75%以上相關
性(決定閾值是主觀的)的變量。此外,我們可以計算 VIF(方差膨脹因子)來檢查多重共
線性的存在。VIF 值<= 4 表明沒有多重共線性,而值> = 10 意味著嚴重的多重共線性。
此外,我們還可以用容差作為多重共線性的指標。但是,刪除相關的變量可能會導致信息的
丟失。為了留住這些變量,我們可以使用懲罰回歸模型,如 Ridge 和 Lasso 回歸。
1.47?什么時候?Ridge?回歸優(yōu)于?Lasso?回歸
在對少量變量有中等或大尺度的影響的時候用 lasso 回歸。在對多個變量只有小或中等尺度
影響的時候,使用 Ridge 回歸。從概念上講,我們可以說,Lasso 回歸(L1)同時做變量選
擇和參數(shù)收縮,而 ridge 回歸只做參數(shù)收縮,并最終在模型中包含所有的系數(shù)。在有相關變
量時,ridge 回歸可能是首選。此外,ridge 回歸在用最小二乘估計有更高的偏差的情況下效
果最好。因此,選擇合適的模型取決于我們的模型的目標。
1.48?如何在一個數(shù)據(jù)集上選擇重要的變量?給出解釋
1.選擇重要的變量之前除去相關變量
2.用線性回歸然后基于 P 值選擇變量
3.使用前向選擇,后向選擇,逐步選擇
4.使用隨機森林和 Xgboost,然后畫出變量重要性圖

5.使用 lasso 回歸
6.測量可用的特征集的的信息增益,并相應地選擇前 n 個特征量。
1.49?Grandient?boosting?算法(GBDT)和隨機森林都是基于樹的算法,它們有什么區(qū)別?
隨機森林算法使用 bagging 技術做出預測。 GBDT 采用 boosting 技術做預測。在 bagging 技
術中,數(shù)據(jù)集用隨機采樣的方法被劃分成使 n 個樣本。然后,使用單一的學習算法,在所有
樣本上建模。接著利用投票或者求平均來組合所得到的預測。Bagging 是平行進行的。而
boosting 是在第一輪的預測之后,算法將分類出錯的預測加高權重,使得它們可以在后續(xù)一
輪中得到校正。這種給予分類出錯的預測高權重的順序過程持續(xù)進行,一直到達到停止標準
為止。隨機森林通過減少方差(主要方式)提高模型的精度。生成樹之間是不相關的,以把
方差的減少最大化。在另一方面,GBM 提高了精度,同時減少了模型的偏差和方差。
1.50?樹模型是如何做分割的?
樹模型就是輸出空間的離散化以及映射的輸出值
ID3 基于最大信息增益,C4.5 基于最大信息增益比,CART 基于基尼系數(shù)。
1.51?獨熱編碼(OneHotEncoder)會增加數(shù)據(jù)集的維度,但是標簽編碼(LabelEncoder)不
會。為什么?
用獨熱編碼(OneHotEncoder),數(shù)據(jù)集的維度(也即特征)增加是因為它為分類變量中存
在的的每一級都創(chuàng)建了一個變量。例如:假設我們有一個變量“顏色”。這變量有 3 個層級,
即紅色、藍色和綠色。
對“顏色”變量進行一位有效編碼會生成含 0 和 1 值的 Color.Red,Color.Blue 和 Color.Green 三
個新變量。在標簽編碼中,分類變量的層級編碼為 0,1 和 2,因此不生成新變量。標簽編
碼主要是用于二進制變量。
1.52?給你一個缺失值多余?30%的數(shù)據(jù)集?比方說,在?50?個變量中,有?8?個變量的缺失值多
余?30%。你對此如何處理。
1.把缺失值分成單獨的一類,這些缺失值說不定會包含一些趨勢信息。
2.我們可以毫無顧忌地刪除它們。
3.可能值插補缺失值,均值眾數(shù)中位數(shù)等等。
1.53?你怎么理解第一類和第二類錯誤?
第一類錯誤是當原假設為真時,我們拒絕了他,也被稱為“假陽性”或者假正類。第二類錯
誤是當原假設為是假時,我們接受了它,也被稱為“假陰性”或者假負類。
1.54?隨機抽樣分成訓練集和驗證集。但是得到的驗證集精度很低,為什么?
在做分類問題時,我們應該使用分層抽樣而不是隨機抽樣。隨機抽樣不考慮目標類別的比例。
相反,分層抽樣有助于保持目標變量在所得分布樣本中的分布。
1.55?在應用機器學習算法之前糾正和清理數(shù)據(jù)的步驟是什么?
1.將數(shù)據(jù)導入
2.看數(shù)據(jù):重點看元數(shù)據(jù),即對字段解釋、數(shù)據(jù)來源等信息;導入數(shù)據(jù)后,提取部分數(shù)據(jù)進
行查看
3.缺失值清洗
15


- 根據(jù)需要對缺失值進行處理,可以刪除數(shù)據(jù)或填充數(shù)據(jù)
- 重新取數(shù):如果某些非常重要的字段缺失,需要和負責采集數(shù)據(jù)的人溝通,是否可以再獲

4.數(shù)據(jù)格式清洗:統(tǒng)一數(shù)據(jù)的時間、日期、全半角等顯示格式
5.邏輯錯誤的數(shù)據(jù)
- 重復的數(shù)據(jù)
- 不合理的值
6.不一致錯誤的處理:對矛盾內容的修正,最常見的如身份證號和出生年月日不對應
1.58?機器學習中的?L1?與?L2?范數(shù)到底是什么意思?
監(jiān)督機器學習問題就是在規(guī)則化參數(shù)的同時最小化誤差。最小化誤差是為了讓我們的模型擬
合我們的訓練數(shù)據(jù),而規(guī)則化參數(shù)是防止我們的模型過分擬合我們的訓練數(shù)據(jù)。所以,我們
需要保證模型“簡單”的基礎上最小化訓練誤差,這樣得到的參數(shù)才具有好的泛化性能。
L1 范數(shù)是指向量中各個元素絕對值之和,可以做特征選擇,有很好的解釋性。
L2 范數(shù)也叫做嶺回歸,是指向量各元素的平方和然后求平方根。L2 范數(shù)可以防止過擬合,
提升模型的泛化能力。一句話總結就是:L1 會趨向于產(chǎn)生少量的特征,而其他的特征都是 0,
而 L2 會選擇更多的特征,這些特征都會接近于 0。Lasso 在特征選擇時候非常有用,而 Ridge
就只是一種規(guī)則化而已。
1.59?請詳細說說決策樹的構造原理
決策樹是輸出空間的離散化,以及離散化的映射輸出值。
1.60?連續(xù)特征,既可以離散化,也可以做幅度縮放,那這兩種處理方式分別適用于什么場
景?
幅度縮放一般在計算型模型里會用到,比如 LR DNN
離散化一般是線性模型會用到,比如 LR。
1.61?A/Btest?的數(shù)學原理與深入理解
A/B 測試便是基于數(shù)據(jù)來進行優(yōu)選的常用方法
1.62?關于?xgboost?使用泰勒展開式的優(yōu)點?泰勒展開取得函數(shù)做自變量的二階導數(shù)形式,
可以在不選定損失函數(shù)具體形式的情況下,?僅僅依靠輸入數(shù)據(jù)的值就可以進行葉子分裂優(yōu)
化計算,?本質上也就把損失函數(shù)的選取和模型算法優(yōu)化/參數(shù)選擇分開了.?請問為什么在
可以在不選定損失函數(shù)具體形式的情況下,?僅僅依靠輸入數(shù)據(jù)的值就可以進行葉子分裂優(yōu)
化計算?
下圖中,g 和 h 都是和損失函數(shù)有關的,所以不可能完全不考慮損失函數(shù),這個表述是錯誤
的。
16

1.63?你有自己用過別的模型然后調參之類的嗎?能說一下基本的調參流程嗎?XGBoost?知
道嗎,以?XGBoost?為例子說一下調參流程吧。
(個人的思路):一般來說采用貝葉斯優(yōu)化或者遺傳算法等啟發(fā)式的優(yōu)化算法確定相對最佳
參數(shù)(如果不熟悉的話用隨機搜索也是可以的,或者網(wǎng)格搜索但是參數(shù)得到步長設置的很大,
一步一步確定相對最優(yōu)參數(shù)的區(qū)間),然后再根據(jù)實際的模型在驗證集上的表現(xiàn)做一些微調,
對于過擬合優(yōu)先調整 max_depth 和樹的數(shù)量,在實際使用過程中這兩個參數(shù)對于模型的整
體效果影響很大很明顯。對于欠擬合,反著來就行了。
1.64?XGBoost?和?GBDT?的區(qū)別有哪些?
(1)損失函數(shù)的二階泰勒展開;
(2)引入了正則化;
1.65?XGB?的特征重要性程度怎么判斷的?
total_gain 就是特征帶來的總的分裂增益,也就是我們常規(guī)意義上的分裂總增益,weight,
被用來作為分裂節(jié)點的次數(shù),也就是我們常規(guī)意義上的分裂總次數(shù),gain=total_gain/weight,
計算的是每一次分裂帶來的平均增益,total_cover 表示特征分裂的樣本數(shù),舉個例子,假設
初始樣本有 10000 個,第一次分裂的時候使用了特征 A,也就是特征 A 在這 10000 個樣本上
分裂,則此時的 cover 值為 10000,假設根據(jù)特征 A 分裂出左枝的樣本有 1000 個,右邊有
9000 個,而在左枝特征 B 是最優(yōu)特征根據(jù)這 1000 個樣本進行分裂,則 B 當前的 cover 是 1000,
依次類推最后求和。而 cover 顯然就是 total_cover/weight,也就是平均每次分裂所“負責”
的樣本數(shù)。
1.66?XGB?的預排序算法是怎么做的?
將原始特征進行排序之后以塊的形式保存到內存中,在塊里面保存排序后的特征值及對應樣
本的引用,以便于獲取樣本的一階、二階導數(shù)值,但意味著除了保存原始特征之外還要保存
原始特征的排序結果,耗內存。
1.67?RF?和?xgboost?哪個對異常點更敏感
xgb 明顯敏感的多,當然對 rf 也是有一定影響的,rf 的每棵數(shù)的生成是獨立的,異常點數(shù)量
不多的情況下異常點常常和正常樣本中的某些樣本合并在一個分支里。但是 xgb 不一樣,異
常樣本的 t-1 輪的預測值和真實標簽計算出來的負梯度會一直很大。
17

1.68?xgb?何時停止分裂
人工設定的參數(shù),max_depth,min_data_in_leaf 等等,這類通過超參數(shù)形式限制樹的復雜度
的方法都會引發(fā) xgb 的分裂的停止,也就是常說的預剪枝;人工不限制,自由生長的情況下,
當分裂增益小于 0 則基學習器停止分裂
1.69?對比一下?XGB?和?lightGBM?在節(jié)點分裂時候的區(qū)別
xgb 是 level-wise,lgb 是 leaf-wise,level-wise 指在樹分裂的過程中,同一層的非葉子節(jié)點,
只要繼續(xù)分裂能夠產(chǎn)生正的增益就繼續(xù)分裂下去,而 leaf-wise 更苛刻一點,同一層的非葉
子節(jié)點,僅僅選擇分裂增益最大的葉子節(jié)點進行分裂。
1.70?簡要說一下?Lightgbm?和?xgboost?的優(yōu)缺點
優(yōu)點:直方圖算法—更高(效率)更快(速度)更低(內存占用)更泛化(分箱與之后的不
精確分割也起到了一定防止過擬合的作用);
缺點:直方圖較為粗糙,會損失一定精度,但是在 gbm 的框架下,基學習器的精度損失可
以通過引入更多的 tree 來彌補。
1.71?xgboost?對特征缺失敏感嗎,對缺失值做了什么操作,存在什么問題
不敏感,可以自動處理,處理方式是將 missing 值分別加入左節(jié)點 右節(jié)點取分裂增益最大的
節(jié)點將 missing 樣本分裂進這個節(jié)點 。這種處理方式的問題在 xgboost 僅僅在特征的非缺失
的值上進行分裂然后 missing 值直接放入其中一個節(jié)點,顯然當缺失值很多的情況下,比如
缺失 80%,那么 xgb 分裂的時候僅僅在 20%的特征值上分裂,這是非常容易過擬合的。
1.72?xgb?和?lgb?在特征、數(shù)據(jù)并行上存在什么差異?
1)特征并行
xgb 的特征并行與 lgbm 的最大不同在于 xgb 每個 worker 節(jié)點中僅有部分的列數(shù)據(jù),也就是
垂直切分,每個 worker 尋找局部最佳切分點,worker 之間相互通信,然后在具有最佳切分
點的 worker 上進行節(jié)點分裂,再由這個節(jié)點廣播一下被切分到左右節(jié)點的樣本索引號,其
他 worker 才能開始分裂。二者的區(qū)別就導致了 lgbm 中 worker 間通信成本明顯降低,只需
通信一個特征分裂點即可,而 xgb 中要廣播樣本索引。
2)數(shù)據(jù)并行
當數(shù)據(jù)量很大,特征相對較少時,可采用數(shù)據(jù)并行策略。lgbm 中先對數(shù)據(jù)水平切分,每個
worker 上的數(shù)據(jù)先建立起局部的直方圖,然后合并成全局的直方圖,采用直方圖相減的方
式,先計算樣本量少的節(jié)點的樣本索引,然后直接相減得到另一子節(jié)點的樣本索引,這個直
方圖算法使得 worker 間的通信成本降低一倍,因為只用通信以此樣本量少的節(jié)點。xgb 中的
數(shù)據(jù)并行也是水平切分,然后單個 worker 建立局部直方圖,再合并為全局,不同在于根據(jù)
全局直方圖進行各個 worker 上的節(jié)點分裂時會單獨計算子節(jié)點的樣本索引,因此效率賊慢,
每個 worker 間的通信量也就變得很大。
1.73?為什么?xgboost?不用后剪枝?
后剪枝計算代價太高了,合并一次葉節(jié)點就要計算一次測試集的表現(xiàn),數(shù)據(jù)量大的情況下非
常消耗時間,而且也并不是特別必要,因為這樣很容易過擬合測試集。
1.74?請問(決策樹、RFBoosting、AdaboostGBDT?和?XGBoost?的區(qū)別是什么?
18


集成學習的集成對象是學習器. Bagging 和 Boosting 屬于集成學習的兩類方法. Bagging 方
法有放回地采樣同數(shù)量樣本訓練每個學習器, 然后再一起集成(簡單投票); Boosting 方法使用
全部樣本(可調權重)依次訓練每個學習器, 迭代集成(平滑加權).
決策樹屬于最常用的學習器, 其學習過程是從根建立樹, 也就是如何決策葉子節(jié)點分裂.
ID3/C4.5 決策樹用信息熵計算最優(yōu)分裂, CART 決策樹用基尼指數(shù)計算最優(yōu)分裂, xgboost 決策
樹使用二階泰勒展開系數(shù)計算最優(yōu)分裂.
下面所提到的學習器都是決策樹:
1 Bagging 方法: 學習器間不存在強依賴關系, 學習器可并行訓練生成, 集成方式一般為投
票;Random Forest 屬于 Bagging 的代表, 放回抽樣, 每個學習器隨機選擇部分特征去優(yōu)化;
2 Boosting 方法: 學習器之間存在強依賴關系、必須串行生成, 集成方式為加權和;Adaboost
屬于 Boosting, 采用指數(shù)損失函數(shù)替代原本分類任務的 0/1 損失函數(shù);GBDT 屬于 Boosting 的
優(yōu)秀代表, 對函數(shù)殘差近似值進行梯度下降, 用 CART 回歸樹做學習器, 集成為回歸模
型;xgboost 屬于 Boosting 的集大成者, 對函數(shù)殘差近似值進行梯度下降, 迭代時利用了二階
梯度信息, 集成模型可分類也可回歸. 由于它可在特征粒度上并行計算, 結構風險和工程實
現(xiàn)都做了很多優(yōu)化, 泛化, 性能和擴展性都比 GBDT 要好。
19


二、金融風控面試(60?題)


2.1?芝麻信用分的主要計算維度?
主要維度
1)個人屬性:職業(yè)類型、學歷學籍等
2)穩(wěn)定性:手機穩(wěn)定性、地址穩(wěn)定性、賬戶活躍時長等
3)資產(chǎn)狀況:賬戶資產(chǎn)、有無住房、有無車輛
4)消費能力:消費金額、消費層次、消費場景豐富度
5)社交情況:人脈圈信用度、社交廣度、社交深度
6)信用歷史情況:信用歷史時長、信用履約記錄數(shù)、信用履約場景、公共事業(yè)繳費記錄
7)違約歷史情況:違約場景數(shù)
2.2?有什么好的模型調參的方法么?網(wǎng)格搜索?貝葉斯優(yōu)化?
跨時間驗證 ks 夠大.
跨時間驗證 ks 與訓練集 ks 盡量小
用數(shù)學方式來表示的話就是:
Max(offks) & Min(abs(devks - offks))
用公式來表示的話我們的優(yōu)化目標就可以寫成
Argmax(offks - abs(devks - offks) * w )
offks + (offks - devks) * 0.8 最大化。這個 0.8 自己來調整,看你是希望跨時間驗證集上的 KS
更高,還是希望模型更穩(wěn)定。
然后模型內部的參數(shù)搜索建議貝葉斯優(yōu)化,推薦原因是因為快一點。精度其實差別不大。然
后精細化調參,一般都是千分位上的提升。
2.3?為什么我們做評分卡的時候要用?woe?編碼,而不是用別的編碼方式呢?比如?onehot?之
類的,僅僅是因為?woe?可以把特征從非線性變成線性的嗎?
因為 onehot 后高維稀疏,模型學習是有困難的。一般模型會做 embedding,但是做了
embedding 就不可解釋了。 所以用 woe 來代替。
使用 woe 編碼通常有以下優(yōu)點:
1、更好的解釋性,變量離散化之后可將每個箱體映射到 woe 值,而不是通常做 one-hot 轉
換。
2、woe 化之后可以計算每個變量的 IV 值,可用來篩選變量。
3、對離散型變量,woe 可以觀察各個 level 間的跳轉對 odds 的提升是否呈線性。
4、對連續(xù)型變量,woe 和 IV 值為分箱的合理性提供了一定的依據(jù),也可分析變量在業(yè)務上
的可解釋性。
5、用 woe 編碼可以處理缺失值問題。
2.4?過采樣怎么做效果才會好?
數(shù)據(jù)集清洗了嘛,還有特征呈線性了嘛,這兩個不滿足過采樣很難保證效果的,通常 xgboost
不保證線性也行,但是要用 smote 最好做一下。
2.5?深度學習的風控模型,從經(jīng)驗上看,樣本量大概要多少條啊
不同的模型不一樣,而且也不光要注意樣本量,比如 RNN 其實希望序列長度至少在 12 個月
以上,粗略的說,樣本量五十萬以上效果比較好
20

2.6?5?萬正樣本,200?負樣本,B?卡,不只是提高額度,會拒絕一部分客戶,怎么建模?
5 萬正樣本是沒有做下采樣的必要的,200 負樣本無論用什么方法做過采樣說實話由于自身
攜帶的信息量比較少,學習的應該也不是完全的。所以這時候建議先略作改動,評價函數(shù)加
一項,負樣本的召回率,也就是說這時候不是主要關注 KS,而是對負樣本究竟能抓到多少。
然后負樣本學習的時候一定要加權,權重就按照 sklearn 中邏輯回歸默認的 balanced 方法就
ok,而且如果是我可能生成一個決策樹,把壞賬從 0.4%下降到 0.12%左右我覺得就蠻好的了
2.7?對短信打標簽,也就是判斷出短信屬于的標簽是哪一類,這樣一個任務是提取文本關鍵
詞的任務吧?
我建議先確定每個詞對每個類別的貢獻度。簡單來做就是每種類別找?guī)讉€詞,手動劃分一下
有這個詞,就屬于這個類別。復雜一點來做,就訓練個模型,確定每個詞對每種類別的貢獻
度,然后對每條記錄做個預測,排名前幾的標簽都給他。
2.8?為什么說準入規(guī)則,pre-A,?反欺詐規(guī)則反欺詐引擎,還有風控模型,一般都不會選用相
同的特征?因為客戶群體會越來越少么
基本上每個機器學習模型或多或少都會遇到我們這種問題。我們一般是不會用相同的特征做
重復篩選的。這樣會導致樣本偏移更嚴重。就是說,被拒絕的人,是由于某些特征表現(xiàn)差,
被拒絕的,那隨著時間推移,下次建模的樣本里面,就沒有這些人了...這些這些特征上的樣
本分布就變了。
2.9?在?ks?上訓練集和測試集相差不大,但在?auc?上卻相差較大,這是為啥?
下圖中兩條紅線分別表示訓練集和測試集 KS 的差距,看起來兩者是差不多的,曲線下的面
積表示的是兩者的 AUC 值,很明顯兩者的 AUC 差的就很多了,由于 ks 值能找出模型中差異
最大的一個分段,因此適合用于 cut_off,像評分卡這種就很適合用 ks 值來評估。但是 ks 值
只能反映出哪個分段是區(qū)分最大的,而不能總體反映出所有分段的效果,因此 AUC 值更能
看出總體的效果。
2.10 在 xgboost 或者 lightgbm 建模之前是否進行相關性處理,去掉相關性較
高的變量?
需要
21

lr 中我們是為了對向量空間描述的最好。
在 xgb 主要是想去掉相互替代性較強的特征。比如一個特征給他找相關性特別強的 9 個特征
放在模型里面,存成不同的名字,你會發(fā)現(xiàn)他本來重要性是 10,每劃分一次,一個特征就
比另一個好用那么一點,這么弄了之后十個特征的重要性都變成了 1,然后被我們用
feature_importance>5 給篩掉了......這多尷尬。
太多共線性特征的存在確實會使得模型的泛化性能下降,當然,這里指的是“過多”,如果是
很少量共線性特征存在其實對于模型影響很輕微,但是如果存在大量共線性特征,尤其是比
賽的時候暴力的特征衍生,會產(chǎn)生相當多相關性很高的特征,從而導致 gbdt 在訓練的過程
中重復采樣相關性很高的特征,使得模型的效果變差,具體可見 kaggle_ieee 的 kris 分享的
方案,通過刪除大量冗余的 V 特征,local cv 上升了千五,b 榜上漲千 4(事后分別測試的)。
2.11?請簡單說下金融風控的架構知識?
見思維導圖
2.12?xgb?變量重要性用哪一個指標?
22

1、通常我會直接用 weight,他們篩選出的變量略有區(qū)別,但是使用下來區(qū)別主要在于重要
性最低的那幾個可以互相替代的特征,具體用誰其實并不重要。經(jīng)驗告訴我們 total_gain 效
果可能會略好。
2、xgb 篩選特征,然后用新的特征建模,但是通常不建議篩選后還用 xgb 建模,這不符合
模型融合的策略。
3、xgb 其實是沒法解釋的,如果希望有邏輯回歸的可解釋度,建議相同數(shù)據(jù)、相同變量,
帶入 lr 建立一個陪跑的模型,尋求解釋的時候去 lr 中找原因。特征相同的前提下,不會有
太大出入的。
4、xgb 篩選特征可以理解為用均方差最小來做特征篩選,和 IV、WOE 屬于同一種篩選方式,,
描述的都是特征對分類任務的貢獻度,一般用一個就行了,每個人的方法都不一樣,見仁見
智。
2.13?金融風控中如何標記客戶好壞的?
可以說遷徙率,也可以說逾期天數(shù)作為標記好壞的依據(jù),因為本身樣本不均衡,會偏向擴充
壞人的數(shù)量(比如以 pd1 來標記好壞,壞人肯定比 pd15 會多很多),注意很多公司建模的
時候,去除一部分灰色客戶(比如去掉 pd1~pd5 的客戶)
2.14?連續(xù)型特征的?badrate?呈?U?型,怎么轉化為單調?
將特征值轉化成中值差值的絕對值,這樣就可以使該特征的 badrate 呈現(xiàn)單調遞減的趨勢。
2.15?金融風控領域中的?bivar?圖是怎樣的?
橫軸為特征升序,縱軸為 badrate 的變化趨勢。
2.16?分箱后,各箱?badrate?單調遞增從業(yè)務上怎么理解呀?
我們有個先驗知識,多頭越多 badrate 越大,歷史逾期越多 badrate 越大...等等,如果變量
分箱后不符合這個先驗,可能就把他剃掉了。
bad rate 要求單調性的原因分析:
1. 邏輯回歸模型本身不要求特征對目標變量的單調性。之所以要求分箱后單調,主要是從
業(yè)務角度考慮,解釋、使用起來方便一點。如果有某個(分箱后的)特征對目標變量不單調,
會加劇模型解釋型的復雜化
2. 對于像年齡這種特征,其對目標變量往往是一個 U 型或倒 U 型的分布,有些公司是允許
變量的 bad rate 呈(倒)U 型的。
2.17?請問回歸決策樹針對離散變量使用,是否先轉成?one-hot?否則?1)如果是沒轉碼的字
符變量,直接報錯;2)如果轉成數(shù)值,就會把我們的編碼,當做連續(xù)變量進行回歸處理?
正常是要做 onehot,但是特征高緯稀疏,還需要做 embedding,這樣就沒有解釋性了,所以
個人建議可以做 WOE,或者按照每個取值的 badrate 做一個排序然后 labelencoder
2.18?在進行特征篩選時,A?和?B?相關性強,B?和?C?相關性強,這種情況去除哪個變量?
去掉 VIF 最大的或者重要性最低的。
2.19?實際分箱過程中如果用等頻分箱,怎么使得每箱都有好壞樣本,保證后面計算?WOE
有意義?
等頻分箱之后,每一箱壞樣本占比不同才有趨勢呀,主要還是看趨勢,也就是說等頻分箱后,
23

要在根據(jù)好壞樣本占比來合并初始的分箱,手動合并的話一般保持單調趨勢就行了,自動的
話,可以考慮把相鄰兩箱 IV 值的差,小于某個閾值則合并為一箱
2.20?分箱法的主要目的?
由于分箱方法考慮相鄰的值,因此是一種局部平滑方法。分箱的主要目的是去噪,將連續(xù)數(shù)
據(jù)離散化后,特征會更穩(wěn)定。
一般在建立分類模型時,需要對連續(xù)變量離散化,特征離散化后,模型會更穩(wěn)定,降低了模
型過擬合的風險。比如在建立申請評分卡模型時用 logsitic 作為基模型就需要對連續(xù)變量進
行離散化,離散化通常采用分箱法。離散特征的增加和減少都很容易,易于模型的快速迭代;
稀疏向量內積乘法運算速度快,計算結果方便存儲,容易擴展;
離散化后的特征對異常數(shù)據(jù)有很強的魯棒性:比如一個特征是年齡>30 是 1,否則 0。如果
特征沒有離散化,一個異常數(shù)據(jù)“年齡 300 歲”會給模型造成很大的干擾;
邏輯回歸屬于廣義線性模型,表達能力受限;單變量離散化為 N 個后,每個變量有單獨的
權重,相當于為模型引入了非線性,能夠提升模型表達能力,加大擬合;
離散化后可以進行特征交叉,由 M+N 個變量變?yōu)?M*N 個變量,進一步引入非線性,提升表
達能力;
特征離散化后,模型會更穩(wěn)定,比如如果對用戶年齡離散化,20-30 作為一個區(qū)間,不會因
為一個用戶年齡長了一歲就變成一個完全不同的人。當然處于區(qū)間相鄰處的樣本會剛好相
反,所以怎么劃分區(qū)間是門學問;
2.21?模型的?ks?和?auc?有多少可以上線了?一般訓練集和測試集之間的?ks?和?auc?相差多少算
是比較合理的呢?
KS 至少 20%,不然和瞎猜沒啥區(qū)別。業(yè)內都認為訓練集和測試集之間的 KS 相差 5 個百分點
以內才算沒有明顯過擬合。
2.22?簡單描述一下風控建模的流程?
1 前期準備工作:不同的模型針對不同的業(yè)務場景,在建模項目開始前需要對業(yè)務的邏輯和
需求有清晰的理解,明確好模型的作用,項目周期時間和安排進度,以及模型效果的要求。
2 模型設計:包括模型的選擇(評分卡還是集成模型),單個模型還是做模型的細分,是否
需要做拒絕推論,觀察期,表現(xiàn)期的定義,好壞用戶的定義,數(shù)據(jù)的獲取途徑等都要確定好。
3 數(shù)據(jù)拉取及清洗:根據(jù)觀察期和表現(xiàn)期的定義從數(shù)據(jù)池中取數(shù),并進行前期的數(shù)據(jù)清洗和
穩(wěn)定性驗證工作,數(shù)據(jù)清洗包括用戶唯一性檢查,缺失值檢查,異常值檢查等。穩(wěn)定性驗證
主要考察變量在時間序列上的穩(wěn)定性,衡量的指標有 PSI,平均值/方差,IV 等。
4 特征工程:主要做特征的預處理和篩選,如果是評分卡,需要對特征進行離散化,歸一化
等處理,再對特征進行降維,降維的方法有 IV 篩選,相關性篩選,顯著性篩選等。另外會
基于對業(yè)務的深入理解做特征構造工作,包括特征交叉,特征轉換,對特征進行四則運算等。
5 模型建立和評估:選擇合適的模型,像評分卡用邏輯回歸,只需要做出二分類預測可以選
擇 xgboost 等集成模型,模型建好后需要做模型評估,計算 AUC,KS,并對模型做交叉驗證來
評估泛化能力及模型的穩(wěn)定性。
6 模型上線部署:在風控后臺上配置模型規(guī)則,對于一些復雜的模型還得需要將模型文件進
行轉換,并封裝成一個類,用 Java 等其他形式來調用。
7 模型監(jiān)控:前期主要監(jiān)控模型整體及變量的穩(wěn)定性,衡量標準主要是 PSI,并每日觀察模
型規(guī)則的拒絕率與線下的差異。后期積累一定線上用戶后可評估線上模型的 AUC,KS,與線
下進行比較,衡量模型的線上的實際效果。
24

2.23?feature_importance?和?iv?有時候選出的變量差別很大,該以哪個為準,怎么判別 ?
個人感覺 IV 和目標函數(shù)的關系更大,但是一般用 IV 做初篩,iv 很低,不用進模型,但是 IV
是單個變量的作用,而 feature_importance 有一個特征組合效應在里面。我個人是這么理解
的。所以按理也可以推出,不一定是選 IV 最高的變量組合在一起就一定能夠 ks 最高,而是
特征組合在一起綜合效應最高的才是 KS 能夠達到最高的。
2.25?為什么要做拒絕推斷?常用的拒絕推斷方法有哪些?
拒絕推斷的目的:如果只用好壞用戶建模,則忽略了那些授信被拒的用戶,加入拒絕用戶是
為了讓建模樣本更接近總體的分布,防止樣本有偏,同時也能增加樣本數(shù)量。公司內部策略
的變動,導致當前的申請者已不能代表建模時點的申請者,所以過去被拒的用戶不一定現(xiàn)在
也會被拒絕,因此,只使用審批通過的用戶可能會造成誤判。做拒絕推斷可以找出之前被拒
的好用戶,挖掘這些用戶,改善風控流程,增加公司收益。
拒絕推斷的常用方法:硬性截斷法:先用好壞用戶建立初始模型,然后用這個初始模型對拒
絕用戶進行打分,設定一個閾值分數(shù),低于這個閾值的為壞用戶,高于這個閾值的為好用戶。
再將已標記好的拒絕用戶放入樣本中,重新建立模型。分配法:此方法適用于評分卡,先用
好壞用戶建立初始評分卡模型,再將樣本跟據(jù)評分高低進行分組,計算各分組的違約率。然
后對拒絕用戶進行打分并按此前的步驟進行分組,以各分組的違約率為抽樣比例,隨機抽取
改分組下的違約用戶,指定其為壞用戶,剩下的則是好用戶。最后將已標記的拒絕用戶加入
樣本中,重新建立模型。
平常工作中主要用到以上兩種方法,個人建議做申請模型最好做一下拒絕推斷,這樣模型上
線后的得分分布和拒絕率和線下才不會有很大的差異。
2.26?我?lgb?在不平衡分類上訓練了一個模型,訓練集上輸出概率分布呈偏態(tài)分布(偏向?0,
好樣本),但在測試集上呈近似正態(tài)分布。如果設置?scale_pos_weight?參數(shù),會產(chǎn)生這種情
況,如果不設置,測試集上的概率分布還是和訓練集類似這種現(xiàn)象正常嗎?
正常吧,scala pos weight 相當于改變了訓練集的標簽分布,不過我理解,輸出概率分布不一
樣,對排序模型沒有影響吧~,只不過和別的模型的分數(shù)不能直接比較。
scale_pos_weight 是用來調節(jié)正負樣本不均衡問題的,用助于樣本不平衡時訓練的收斂。
如果你僅僅關注預測問題的排序或者 AUC 指標,那么你盡管可以調節(jié)此參數(shù)。如果你希望
得到真正的預測概率則不能夠通過此參數(shù)來平衡樣本。什么意思呢,讓我們來舉個例子:加
入我們現(xiàn)在需要通過體重來預測男女,有三個人體重分別為 50kg、60kg、70kg。假設他們
是男生的真正概率是:0.4、0.6、0.8。那么好,我現(xiàn)在模型預測出的概率為:0.7、0.8、0.9。
如果講預測概率的話,顯然模型效果很差,但是我們預測的男生概率的排序以及 ROC 曲線
(包括對應 AUC 值)都不會改變。
2.27?下探一般要選多少樣本進行下探?下探的樣本評分很低,但選取哪些呢?
按照期望得到的壞客戶量進行選擇。不知道下探后會收獲多少壞樣本對不對?上一次模型迭
代時候的測試集模擬就派上用場了。用那個百分比作為下探區(qū)間的預期百分比,然后去算吧。
2.28?現(xiàn)在市面上在金融風控中用的無監(jiān)督算法都有哪些?
主要是基于圖的離群檢測和聚類,其次還有孤立森林,LOF 這種,還有通過聚類進行特征衍

25


2.29?針對新場景下樣本量較少的情況,通常采用什么方法?
可以遷移的歷史樣本或者其他場景樣本用來做遷移。無標簽樣本丟進來做半監(jiān)督。
風控模型的冷啟動是指產(chǎn)品剛上線時,沒有積累的用戶數(shù)據(jù),或者用戶還沒有表現(xiàn)出好壞,
此時需要做模型就是一個棘手的問題,常用的方法如下:
不做模型,只做規(guī)則。憑借自己的業(yè)務經(jīng)驗,做一些硬性規(guī)則,比如設定用戶的準入門檻,
考量用戶的信用歷史和多頭風險,而且可以接入第三方提供的反欺詐服務和數(shù)據(jù)產(chǎn)品的規(guī)
則。另外可以結合人審來對用戶的申請資料做風險評估。借助相同模式產(chǎn)品的數(shù)據(jù)來建模。
如果兩個產(chǎn)品的獲客渠道,風控邏輯,用戶特征都差不多的話,可以選擇之前已上線那個產(chǎn)
品所積累的用戶來建模,不過在模型上線后需要比較線上用戶的特征是否與建模用戶有較大
的差異,如果差異較大,需要對模型對一些調整。
無監(jiān)督模型+評分卡。這種方法適用于產(chǎn)品上線一段時間后,表現(xiàn)出好壞的用戶比較少,但
需要做一個模型出來,此時可用線上的申請用戶做無監(jiān)督模型,找出一部分壞樣本和好樣本,
用這些數(shù)據(jù)來做評分卡模型,當然這種模型準確性是存疑的,需要后續(xù)對模型不斷迭代優(yōu)化。
2.30?使用?BiLSTM?對用戶行為進行建模時,神經(jīng)網(wǎng)絡的輸入層是什么?輸出層是什么?怎
么把用戶行為數(shù)據(jù)轉換成神經(jīng)網(wǎng)絡輸入層的向量?
打個比方啊,額度使用率按照月份的時間序列就是,前 0-30 天的額度使用率,前 30-60 的
額度使用率,前 60-90 的額度使用率...變成一個列向量。有多少特征(額度使用率是一個特
征)就有多少個列向量。然后輸入層就是這些列向量,輸出層一般就是用戶的標簽。最終可
以把輸出的 score 丟進邏輯回歸,或者把中間測參數(shù)拿出來也可以。
2.31?請問欺詐標簽如何定義?
反欺詐的千古難題。現(xiàn)在使用的方法:外部黑名單,客服的反饋,明顯壞的行為(例如貸款
逾期 M3+。通訊錄造假) ,根據(jù)已有標簽進行染色,負樣本上聚類(已有標簽明顯多的一
類)
2.32?無監(jiān)督與?xgboost?結合的反欺詐模型該如何做?
首先聚類,得到每一個簇的聚類中心,然后取出所有的聚類中心,對這些點進行異常值檢測
(本質是在對簇做異常簇檢測)。比如說放進孤立森林中,得到異常值作為整個簇的異常值,
帶入 xgboost 進行訓練。
2.33?小微正常做反欺詐,主要考慮哪些?
信用風險,行業(yè)情況。挺多的,發(fā)票流水進項,銷項 的金額 、頻次,和時間以及傳統(tǒng)統(tǒng)計
指標 做笛卡爾乘積,還有行業(yè)指標,區(qū)域指標,企業(yè)間銷售關系,專票循環(huán)網(wǎng)絡造假騙貸
啥的。
2.34?模型上線后監(jiān)控哪些指標?
主要是指標的變化趨勢而不是絕對值。比如:模型 PSI、特征 PSI、分數(shù)分布、KS 變化曲線
等等。因為 KS 值這種指標,線上模型通過率越低,KS 值就會越低,具體的值監(jiān)控起來沒有
太大的意義。關注的是趨勢。
2.35?在模型訓練過程中,用?offoot)來調參和特征篩選是不是在作弊?
理論上 off 是不允許參與建模過程的,為什么我們要做到建模過程中去。是因為,實際建模
的時候,如果 off 表現(xiàn)不好,我們最終還是得去動用 off,這個是一個很常見的現(xiàn)象。也屬于
26


業(yè)務需求。所以干脆放進了標準化流程里面。如果體量比較大的話,我們最后還會有一個
off2,就是建模期間產(chǎn)生的新樣本,這個通常會作為效驗,不要也 ok??偟膩碚f,問題所述
是指導思想,我們做的是結合實際經(jīng)驗的一種落地方法。
2.36?挑選樣本時,灰樣本不參與模型訓練嗎?
實際做的時候確實去掉了,不然 dev 和 off 上的 ks 有差異,我們不知道是由什么引起的,事
實上線效果會比預期的差一點 。
在某些條件下的客戶,其風險處于較為模糊的灰色地帶,很難將其歸類為好客戶或壞客戶。
比如, “半年內曾出現(xiàn)一次 M1”, 由于此類客戶并無鮮明的風險特征, 很難判斷其好
壞。 因此, 為強化模型的區(qū)隔能力, 不確定的客戶不適合被納入建模樣本之中。 不過在
模型完成后可加入測試, 觀察其分數(shù)落點, 理論上應以中等分數(shù)居多。
2.37?業(yè)務中可能遇到的問題及業(yè)務所需要的變量?
在業(yè)務中的模型會遇到什么問題。
- 模型效果不好
- 訓練集效果好,跨時間測試效果不好
- 跨時間測試效果也好,上線之后效果不好
- 上線之后效果還好,幾周之后分數(shù)分布開始下滑
- 一兩個月內都比較穩(wěn)定,突然分數(shù)分布驟降
- 沒有明顯問題,但模型每個月逐步失效
然后我們來考慮一下業(yè)務所需要的變量是什么。
- 變量必須對模型有貢獻,也就是說必須能對客群加以區(qū)分
- 邏輯回歸要求變量之間線性無關
- 邏輯回歸評分卡也希望變量呈現(xiàn)單調趨勢 (有一部分也是業(yè)務原因,但從模型角度來看,
單調變量未必一定比有轉折的變量好)
- 客群在每個變量上的分布穩(wěn)定,分布遷移無可避免,但不能波動太大
2.38?對于成千上萬維的特征你是怎么做特征篩選的,如何保證其模型的可解釋性和穩(wěn)定
性?
對于高維稀疏特征,邏輯回歸的效果要比 GBDT 好,GBDT 對于高維稀疏特征很容易過
擬合。平時工作中如果用的是邏輯回歸評分卡,則可以對稀疏特征進行離散化,離散成值為
0 或不為 0,再用 woe 進行編碼。而如果使用 xgboost 等集成模型,最好還是不要用高維的
稀疏特征。在大數(shù)據(jù)風控中弱特征的種類很多,包括社交,通話,位置等信息,而且建模時
弱特征會多達數(shù)百個。如果是用評分卡建模,弱特征一般會被舍棄掉,因為評分卡的入模特
征數(shù)不宜過多,一般在 15 個以下,所以要找尋比較強的特征。而對于 xgboost 等模型,本
身對數(shù)據(jù)的要求不是很高,并且精度好,一些弱特征進行交叉組合或許能給模型帶來不錯的
效果。
2.39?如何根據(jù)風險因素對用戶分層,構建客群差異化的模型?
做客群差異化模型之前最好做一下用戶畫像,便于后續(xù)的數(shù)據(jù)挖掘。對不同類型的用戶,
做針對性的風控規(guī)則和風控模型。
平常工作中的做法:對用戶做靜態(tài)屬性的劃分,比如按性別,年齡,收入,職業(yè)等。例如剛
畢業(yè)工作的年輕人和收入比較穩(wěn)定的中年人,他們的借款需求,風險程度就不一樣,可以先
27


對用戶群體做這樣的劃分,再對每個群體單獨建立模型。根據(jù)用戶風險屬性做差異化模型,
例如對手機分期業(yè)務做一個套現(xiàn)風險模型,挖掘套現(xiàn)風險屬性,目標變量變成是否為套現(xiàn)用
戶。
2.40?對于評分卡模型,是先特征選擇還是先對特征進行分箱處理?對于單特征非常多的情
況下,分箱的效果也不太好,我就考慮是不是先對特征進行選擇再處理呢?
是這樣的,分箱是單特征之間進行的,和特征多少是否篩選沒有關系。分箱的時候首先考慮
用什么算法。lr 必須做分箱,不然魯棒性會很差。xgboost 做了,穩(wěn)定性上升,準確度下降,
有舍有得。lightgbm 絕對不要做,直方圖算法加上分箱對性能影響比較大。然后分箱分兩種
情況,一種是對連續(xù)變量做分箱,一種是將字符變量做合并。前期粗分箱通過等頻和 IV(卡
方)進行劃分。后期通常根據(jù) bivar 圖來確定。個人建議,類別變量統(tǒng)一做 woe 處理。省心
效果還好。
2.41?風控流程中不同環(huán)節(jié)的評分卡是怎么設計的?
申請評分 A 卡用在貸前審核階段,主要的作用是決定用戶是否準入和對用戶進行風險定價
(確定額度和利率),用到的數(shù)據(jù)是用戶以往的信用歷史,多頭借貸,消費記錄等信息,并
且做 A 卡一般需要做拒絕推斷。
A 卡一般預測用戶的首筆借款是否逾期,或者預測一段時間內是否會逾期,設計的方式也多
種多樣,有風險差異化評分卡,群體差異化評分卡,或者做交叉評分卡等。
行為 B 卡主要用在借貸周期較長的產(chǎn)品上,例如手機分期。作用一是防控貸中風險,二是對
用戶的額度做一個調整。用到的數(shù)據(jù)主要是用戶在本平臺的登錄,瀏覽,消費行為數(shù)據(jù),還
有借還款,逾期等借貸表現(xiàn)數(shù)據(jù)。
催收 C 卡主要是對逾期用戶做一個畫像分析,通過深度挖掘用戶特征,對逾期用戶進行分群,
做智能催收策略等。
2.42?現(xiàn)在做?xgb?模型還需要分箱編碼嘛?
xgb 有些做的,比如城市這個變量取值比較多,用 woe 指定一下分箱,犧牲一些精度來增強
魯棒性。
2.43?lr?那種模型里變量分箱編碼以后都是單調齊次的了,陪跑的?xgboost?模型也需要分箱編
碼嗎?
正常是這樣的,我之前做過一家是 線上 xgb,線下 lr,解釋性的問題用線下的 lr 來說明,
所以要在 xgb 前面做 bivar,為了保證 xgb 和 lr 的變量完全一致的。
2.44?怎么更新評分卡或模型,比如通過決策規(guī)則獲得數(shù)據(jù)構建評分卡或模型,上線一段時
間之后,想更新模型,該用怎么建模?
refit 是指在原有模型的基礎上對變量重新進行系數(shù)擬合或變量調整
rebuild 是指當前的模型對好壞客戶的區(qū)分能力明顯下降,且無法通過擬合系數(shù)或調整變量
來提高模型的區(qū)分度,需開發(fā)新模型
什么時候進行 refit ?
1)模型區(qū)分度下降明顯但變量相對比較穩(wěn)定,重新擬合系數(shù),提高區(qū)分度
2)客群發(fā)生變化, 變量變得不穩(wěn)定 ,理論上變量 PSI>5%,變量已不可用,考慮刪除并重
新擬合變量系數(shù)
refit 步驟:
28


- 準備數(shù)據(jù)集
- 跑 model_report
- 調整模型變量及系數(shù)
- 修改 onekey、分數(shù)映射
- 評估上線
什么時候進行 rebuild ?
模型區(qū)分度下降, 無法通過 refit 方法調整模型時,考慮開發(fā)新模型
2.45?額度,利率的風險定價模型是如何設計的?
首先做風險定價模型需要熟悉產(chǎn)品的屬性和特點,像小額現(xiàn)金貸和大額分期貸兩種產(chǎn)品的額
度定價邏輯就不同。另外也要了解產(chǎn)品的盈利模式和預期的利潤,這點需要與業(yè)務部門做好
溝通,通常關于額度,利率也是業(yè)務或者產(chǎn)品制定的。
風險定價模型一般采用評分卡模型,最后設定 cutoff 點后對通過的用戶進行風險等級劃分,
對于風險高的用戶給的額度較低,或者利率較高。一般來說中低額度的用戶占大部分,高額
度用戶占小部分,最后可以得出一個平均額度或利率,這個值事先可以根據(jù)預期的利潤/資
損來計算。
2.46?對于信貸評分卡模型 數(shù)據(jù)量一般在多少范圍比較合適?
首先合適的樣本量和預計入模特征數(shù)量有關系,模糊的說,可能是 5000 一檔,5 萬一檔,
50 萬一檔。5000 檔以下模型不穩(wěn)定,負樣本通常非常少。5000-5 萬檔模型逐步穩(wěn)固,特征
通常不超過樣本的百分之一,lr 相應的要用更少的特征。5 萬到 50 萬感覺提升不明顯,更
多的是對正樣本做下采樣,進行均衡學習。50 萬以上深度學習效果突出。
2.47?我們的模型基本上都是基于樣本不均衡的數(shù)據(jù)的,那么問題就來了,特征工程里不做
采樣處理的話,樣本是極不均衡的,那么做出來的模型有的時候也會失真。如果做采樣的
話,那么雖然模型有保證了,但是訓練模型的好壞分布并不符合線上的實際好壞分布。這
個問題怎么解決呢?
我們是把采樣權重記錄下來,不參與模型訓練,只作為計算 KS 和最終模型模擬時候的權重。
然后測試集是沒有做采樣變換的,所以直接就是真實的
2.48?那么?ks?指標計算,會考慮這個權重嗎,還是繼續(xù)使用采樣過后的?
訓練過程里面,訓練集我是沒有考慮還原的,只是最終報告里面還原成真實的了
2.49?最近面試數(shù)據(jù)分析師崗位,和算法崗有什么不一樣么?數(shù)據(jù)敏感問題?
區(qū)別是分析師是業(yè)務+報表+算法,工程師是業(yè)務+算法+工程。數(shù)據(jù)敏感是玄學,關鍵要知道
數(shù)據(jù)怎么分析,數(shù)據(jù)要對比著分析,隨便拿出一個值就知道這個值是什么水平還是比較困難
的。比如我們分析模型表現(xiàn),分析變量穩(wěn)定性。不是給出一個月份的分布我們就知道模型好
不好,而是要兩個月作對比才知道。
2.50?你們公司的主要業(yè)務是什么?
屬于什么類型的貸款產(chǎn)品(現(xiàn)金貸、消費分期等等)客戶一般來自什么渠道,是特定的群體
(比如滴水貸只借給滴滴平臺的司機),還是面向所有人的(比如常規(guī)的 p2p 公司)貸款
額度、還款周期
29


2.51?面試問你們的業(yè)務做得怎么樣?
通過率是多少 pd0、pd7、pd30 大概是多少
注意:這些都反應了你的模型做的如何,通過率越高,逾期率越低,模型越好。
ps:pd0 指的是到期當天,pd1 指的是逾期一天。
2.52?金融風控業(yè)務中特征篩選的作用和目的?篩選的特征需要滿足什么要求?
作用和目的:
簡化模型,增加模型的可解釋性, 降低模型過擬合的風險。
縮短模型的訓練時間。
避免維度災難。
篩選特征滿足的要求:
具有良好的區(qū)分能力。
可解釋性好,與目標變量的關系在業(yè)務上能解釋的通。
在時間序列上有比較好的穩(wěn)定性。
特征的用戶覆蓋率符合要求。
2.53?講一講你模型是怎么做的?
確定 y 如何標記(逾期幾天為 1,幾天為 0,每種產(chǎn)品不一樣,15 天為分割點,沒什么大問
題)
前期數(shù)據(jù)準備(數(shù)據(jù)來自 HIVE?MySQL?MongoDB?Spark?)
這里就可以接上學過的風控項目包括各種算法,建模技巧,基本上都是這里引出的。
2.54?問模型的效果怎么樣?簡單介紹一下風控模型常用的評估指標。
測試集和跨時間驗證集的 KS 和 AUC 是多少上線后一個月或者幾個月后,模型的 KS 是多少,
AUC 是多少
混淆矩陣指標:精準率(查準率),查全率(召回率,真正率),假正率。當模型最后轉化
為規(guī)則時,一般用這三個指標來衡量規(guī)則的有效性。要么注重精準率,要么注重召回率,兩
者不可兼而得之。
2.55?什么是?AUC、ks?和基尼系數(shù)
ROC?曲線和?AUC?值,ROC 曲線,具體方法是在不同閾值下以真正率作為縱軸,假正率
作為橫軸繪制出一條曲線。曲線越靠近左上角,意味著越多的正例優(yōu)先于負例,模型的整體
表現(xiàn)也就越好。AUC 是 ROC 曲線下面的面積,AUC 可以解讀為從所有正例中隨機選取一個
樣本 A,再從所有負例中隨機選取一個樣本 B,分類器將 A 判為正例的概率比將 B 判為正例
的概率大的可能性。在對角線(隨機線)左邊的點上 TPR 總大于 FPR,意為正例被判為正例
的概率大于負例被判為正例的概率。從另一個角度看,由于畫 ROC 曲線時都是先將所有樣
本按分類器的預測概率排序,所以 AUC 反映的是分類器對樣本的排序能力。AUC 越大,自
然排序能力越好,即分類器將越多的正例排在負例之前。
KS:用于區(qū)分預測正負樣本分隔程度的評價指標,KS 越大,表示模型能將好壞樣本區(qū)
分開的程度越大。KS 的繪制方法是先將每個樣本的預測結果化為概率或者分數(shù),將最低分
到最高分進行排序做樣本劃分,橫軸就是樣本的累計占比,縱軸則是好壞用戶的累計占比分
30


布曲線,KS 值為兩個分布的最大差值。KS 值僅能代表模型的區(qū)隔能力,KS 不是越高越好,

KS 如果過高,說明好壞樣本分的過于開了,這樣整體分數(shù)就是比較極端化的分布狀態(tài),這

樣的結果基本不能用。

基尼系數(shù):其橫軸是根據(jù)分數(shù)(概率)由高到低累計的好用戶占總的好用戶的比例,縱

軸是分數(shù)(概率)從高到低壞用戶占總的壞用戶的比例。由于分數(shù)高者為低風險用戶,所以

累計壞用戶比例的增長速度會低于累計好用戶比例,因此,基尼曲線會呈現(xiàn)向下彎曲的形式,

向下突出的半月形的面積除以下方三角形的面積即是基尼系數(shù)?;嵯禂?shù)越大,表示模型對

于好壞用戶的區(qū)分能力越好。

2.56?你們模型是怎么部署上線的?

最簡單的,把評分卡每個區(qū)間加多少分減多少分,怎么做映射的邏輯,講給開發(fā)小哥,他會

幫你在線上寫 if else 生成一個 pmml 文件,給開發(fā)小哥調用公司自己做的決策引擎,或者是

租的,自己寫變量邏輯上線用 flask 或者 Django 自己寫接口上線

2.57?上線需要注意什么?

線上線下變量的邏輯必須完全一致,這是最重要的。很多公司會做類似于 A\B test,兩套模

型競爭(一個 champion 做決策,和一個 challenger 空跑,也有可能 champion 70%,challenger

30%)

2.58?特征衍生的方法有哪些?說說你平時工作中是怎么做特征衍生的?

常規(guī)的特征衍生方法:

基于對業(yè)務的深入理解,進行頭腦風暴,構造特征。

特征交叉,例如對類別特征進行交叉相乘。

分解類別特征,例如對于有缺失的特征可以分解成是否有這個類別的二值化特征,或者將缺

失作為一個類別,再進行亞編碼等處理。

重構數(shù)值量(單位轉換,整數(shù)小數(shù)拆分,構造階段性特征)

特征的四則運算,例如取平均/最大/最小,或者特征之間的相乘相除。

平時工作特征衍生的做法:

因為風控模型通常需要好的解釋能力,所以在特征衍生時也會考慮到衍生出來的特征是否與

目標變量相關。例如拿到運營商的通話記錄數(shù)據(jù),可以衍生一個"在敏感時間段(深夜)的

通話次數(shù)占比",如果占比較高,用戶的風險也較大。

平常會將大量的時間和精力花在底層數(shù)據(jù)的衍生上,這個不僅需要對業(yè)務的理解,也需要一

定的想象力進行頭腦風暴,即使衍生出來的特征 90%都效果不佳,但只要剩下的 10%是好的

特征,那對于模型效果的提升是很顯著的。

對于評分卡來說,特征需要好的解釋能力,所以一些復雜的衍生方法,像特征交叉,log 轉

換基本不會用到。但如果是 xgboost 等復雜模型,進行特征交叉等方法或許有比較好的效果。

2.59?如何處理金融風控業(yè)務中的樣本不平衡的問題?

下探、半監(jiān)督學習、標簽分裂、代價敏感、采樣算法

2.60?通過一些指標監(jiān)控的時候,什么樣的情況下模型變得不好需要重新調整,什么樣的情

況下模型良好而不需要調整?

一般有套完整的監(jiān)控體系,監(jiān)控 PSI KS capture_rate 超過一定閾值就可以 refit 或者 rebuild

了。

歡迎各位同學了解《python金融風控評分卡模型和數(shù)據(jù)分析(加強版)》學習更多相關知識

入口1:https://ke.qq.com/course/package/43071

入口2:https://study.163.com/series/1202915601.htm?share=2&shareId=400000000398149



金融風控面試題目(二)的評論 (共 條)

分享到微博請遵守國家法律
酒泉市| 长治市| 安塞县| 青田县| 隆化县| 阳山县| 郸城县| 锡林浩特市| 桐柏县| 大洼县| 丰顺县| 县级市| 五河县| 定边县| 浦县| 安多县| 类乌齐县| 咸宁市| 滕州市| 石景山区| 六盘水市| 射洪县| 监利县| 沙河市| 翁牛特旗| 木里| 清新县| 福建省| 抚宁县| 岳阳县| 惠来县| 宁陕县| 抚顺市| 太和县| 金坛市| 扶绥县| 迭部县| 铜梁县| 馆陶县| 南平市| 巩留县|