評分卡模型建模的各步驟中的一些方法工具、開發要點、優化方向、調研總結

 
評分卡的優點:
  1. 可解釋性的對策
  2. 穩定性的要求及其對策
  3. 及時監控的要求
  4. 審覈要求:分數分組、分區間
  5. 量化損失的要求,肯定利息成本
 
 
特徵工程的優化方向:
  1. 命名的規則化:因在特徵變量的命名中包含:數據來源、 數據分佈類型(連續型,離散型 )、 數據類型(字符、數字),以便作自動化
  2. 同源特徵的自動化: 自動作 乘/除/ log 等操做,生成新衍生。
  3. 特徵的分 bin:自動化計算最優分 bin (ChiMerge 算法)、 自動生成對應的分 bin 代碼邏輯(在命名規則的前提下)
  4. 對於 B/C 卡: 提供逾期類的細節時序特徵的自動化生成: Rencent / Frequent / Count 等特徵的自動生成
  5. (重點:支持後期監控,建模前的分時段進行特徵分佈檢測)GBDT的思想使其具備自然優點能夠發現多種有區分性的特徵以及特徵組合。業界中,Facebook使用其來自動發現有效的特徵、特徵組合,來做爲LR模型中的特徵,以提升 CTR預估(Click-Through Rate Prediction)的準確性(詳見參考文獻五、6);GBDT在淘寶的搜索及預測業務上也發揮了重要做用(詳見參考文獻7)。
  6. 爲了保留用戶的逾期類的細節特徵,能夠加上時間維度,轉換成二維數據,使用 autoencoder 將數據轉換到新空間,再轉換成一維,方便入 LR,也能夠以此與人工設計的統計類特徵作對比。
 
 
特徵選擇優化方向:
  1. 使用 variance Threshhold 篩除掉方差較低的特徵
  2. 使用 f_regression(F-score) 方法來作特徵篩選, 發現線性相關的特徵
  3. 使用 mutual_infomation 來發現任意類型的相關性特徵
  4. 使用 chi2 卡方檢驗(僅適用於離散特徵,如統計量之類)作 特徵與 label 的獨立性檢驗
  5. Spearman 順序型 秩相關係數
  6. Kendall 等級相關
  7. 使用 varcluster 或者  來根據高相關性特徵-作特徵分組篩選
  8. RFE (recursive features elimination) 特徵篩選最優組合
  9. 使用 step-wise 作最優化特徵組合的發現 :
    1. https://stackoverflow.com/questions/15433372/stepwise-regression-in-python
    2. http://planspace.org/20150423-forward_selection_with_statsmodels/
  10. VIF 的共線性對於模型的影響:1. 容易過擬合 2. 若是入模型的特徵變量中,多個模型特徵可以表達另外一個特徵,那說明這幾個特徵中存在某個份量方向 與 另外一特徵變量夾角很小, 從而表現出相似於夾角很小的兩個向量的點乘結果較大,從而使得該向量方向對於模型的貢獻分值過大, 進而使得模型有偏,不穩定,影響模型表現。
 
 
模型訓練的優化方向:
  1. SMOTE
  2. 生成新樣本:使用 GAN 生成壞樣本 https://zhuanlan.zhihu.com/p/25071913
  3. 加權
  4. overSampling
  5. 使用mlxtend 來繪製模型分割面,以分析數據及模型的過擬合狀況
  6. hyperopt
  7. 貝葉斯參數調優
 
 
模型集成:
  1. 將現有的 statsmodel 的模型訓練過程代碼嵌入到 sklearn 中, 讓他變成一個Pipeline的一部分,包含 dataSaver
  2. 利用 GBDT 生成的特徵作model
  3. 分分鐘帶你殺入Kaggle Top 1%   https://zhuanlan.zhihu.com/p/27424282
  4. 如何進入Top 10%  https://dnc1994.com/2016/04/rank-10-percent-in-first-kaggle-competition/
  5. Xgboost 原理與調優 https://zhuanlan.zhihu.com/p/30848967?utm_medium=social&utm_source=wechat_session
 
 
監控的優化方向:
  1. psi 計算
  2. 打分異常問題自動計算定位
  3. 採用 auto_encoder + logistic 建模, 此時,須要監控的就是 auto_encoder 的各個維度, 能夠作到提早發現異動, 但如何定位具體致使問題的緣由所在,依然較爲困難。
  4. 模型的分界面可視化:mlxtend
 
 
上線實施的優化方向:
  1. 優化實施過程:根據將訓練好的模型參數、分 bin 邏輯、woe 自動化輸出,生成實施過程須要的 分 bin 邏輯代碼、 woe 轉換代碼
  2. 優化實施打分與離線打分的核對流程: 
    1. 實施打分表 與 離線打分表的結構統一,方便使用兩份數據的對應字段進行 分 bin 和 woe 的數值比對,確認離線與實施代碼的邏輯一致性。
    2. 提供自動覈對與統計的代碼
 
 
 
  1. 數據預處理:
    1. Z-score
    2. Min-max (對於神經網絡類存在激活函數 Saturation 問題的,建議標準化到:0.1~0.9區間,Depending on the task objetives. For example; for neural networks is recommended normalization Min max for activation functions. To avoid saturation Basheer & Najmeer (2000) recommend the range 0.1 and 0.9. Another possibility is to use the Box Cox transformation + constant to avoid the problem of the zeros)
    3. Std-norm
  2. 數據驗證:
    1. 各時間階段 ylabel 的分佈
    2. 各種統計量
  3. 分 bin標準
    1. 好壞比(對數概率? Logit?  woe) 差15
    2. 最多 8 個分 bin
    3. 最少分組含有2%的樣本,其中很多於30的壞用戶樣本
    4. Bad_rate 單調遞減
    5. Bad rate 儘可能等差
  4. 類別型的特徵轉換
    1. LabelEncoder
    2. OneHotEncoder(dummies)
    3. Woe
    4. 單顆樹的葉子節點編號
  5. 數值類變量分組 或 類別型變量的離散化優化方法:
    1. Gini 
    2. 卡方
    3. 信息熵增益 (決策樹的葉子節點編號,再合併分組,再肯定目標數值?)
    4. WOE (非線性轉換,與強烈暗示性的數值)
  6. 篩選:
    1. Varclus 分組, 
    2. 特徵選擇:
      1. 單變量特徵選擇:
        1. 迴歸類:f_regression  , mutual_info_regression 
        2. 分類: chi2 , f_classif , mutual_info_classif
      2. 遞歸特徵降維:sklearn 的 RFE方法
      3.  http://scikit-learn.org/stable/modules/feature_selection.html
    3. 類似度
    4. unique column
    5. 特徵取值極度不平衡: 99:1
  7. 全自動分箱 與 邏輯生成:
    1. 全自動分 bin:參考分 bin 標準 
  8. 模型參數:
    1. imbalance
  9. 拒絕推斷對於模型的提高
    1. 建模初期選用的是 「有偏樣本」 , 只選擇了在公司業務系統中有表現的用戶,實際上,還有以前並未經過系統的樣本也是申請者之一,他們屬於樣本整體,但卻被篩選掉了。
    2. 正確標準的作法是: 使用:對被拒絕用戶進行推斷演繹技術,即: 使用有偏的有變現用戶進行初版建模,完成後,使用該模型對’‘被拒絕用戶’’進行預測, 而後 將預測的機率做爲其權重, 從新加入訓練樣本中,從新分 bin 和建模,這樣才能用上原始的真正分佈。
  10. 金融領域建模使用 ks 或者 auc的緣由是什麼
    1. ks 與 auc 能夠量化區間的損失或者說壞帳率在承受範圍內, 並能夠以此計算出放貸的基礎利率
    2. 正負樣本的不均衡使得像 accuracy 這類指標不適用。
 
評分卡 邏輯迴歸中的模型指標解釋說明 :
  1. 卡方: 越接近1越好
  2. Adj. R-squared: 
  3. F統計量: 大於 3.86
  4. Prob 統計量: 
  5. logs 似然
  6. AIC :
  7. BIC :
  8. T 統計量:每一個變量的絕對值都應大於 1.96
  9. P 值 > |t|:都應小於0.05 
 
參考: 
  1. SPSS分析技術:線性迴歸分析(Evernote 有保存) https://zhuanlan.zhihu.com/p/25507503 
  1. 迴歸模型的一些判斷方法 (Evernote 有保存) https://blog.csdn.net/joeland209/article/details/69367318
 
                            OLS Regression Results                           
==============================================================================
Dep. Variable:                    LTS          R-squared:                       0.531
Model:                            OLS            Adj. R-squared:                  0.453
Method:                 Least Squares     F-statistic:                     6.806
Date:                Fri, 27 Apr 2018        Prob (F-statistic):            0.00291
Time:                        15:30:53           Log-Likelihood:                 85.700
No. Observations:                  22       AIC:                            -163.4
Df Residuals:                      18           BIC:                            -159.0
Df Model:                           3                                        
Covariance Type:            nonrobust                                        
==============================================================================
                 coef             std err         t          P>|t|      [95.0% Conf. Int.]
------------------------------------------------------------------------------
const         -0.9666      0.449     -2.155      0.045        -1.909    -0.024
fpd90         -5.6018      2.940     -1.905      0.073       -11.778     0.575
log_sub        5.5858      2.933      1.905      0.073        -0.576    11.747
log2_add      -5.6248      2.950     -1.907      0.073       -11.823     0.573
log_add       -5.6177      2.947     -1.906      0.073       -11.809     0.574
log10_add     -5.6087      2.943     -1.906      0.073       -11.792     0.574
sqrt_add      -0.6421      0.647     -0.992      0.334        -2.002     0.718
log2_sub       5.5787      2.930      1.904      0.073        -0.576    11.734
log10_sub      5.5948      2.937      1.905      0.073        -0.575    11.765
sqrt_sub      10.5615      5.269      2.005      0.060        -0.507    21.630
==============================================================================
Omnibus:                        0.110   Durbin-Watson:                   1.900
Prob(Omnibus):                  0.946   Jarque-Bera (JB):                0.047
Skew:                           0.047   Prob(JB):                        0.977
Kurtosis:                       2.795   Cond. No.                     1.05e+19
==============================================================================
 
 
 
 
 
參考:
嵌套交叉驗證Nested versus non-nested cross-validation: 
特徵的聚類: 譜聚類(varcluster 是否由PCA 計算特徵向量個數,再根據此設定 cluster 數量,使用譜聚類計算結果), http://scikit-learn.org/stable/auto_examples/bicluster/plot_spectral_coclustering.html#sphx-glr-auto-examples-bicluster-plot-spectral-coclustering-py
樣本類似度度量方法 拉普拉斯核函數  高斯核 RBF 核函數的表達式:  http://scikit-learn.org/stable/modules/metrics.html#cosine-similarity
傅里葉級數與希爾伯特空間的說明:  https://www.wikiwand.com/zh-cn/%E5%82%85%E9%87%8C%E5%8F%B6%E7%BA%A7%E6%95%B0
LR 不會偏移分離超平面向大類: this is an imbalanced dataset, you could do under sampling for majority case as the results are always going to be biased towards majority (exception Logistic Regression) use SMOTE, ROSE, k-medoids for the same. Or you could do random under sampling : https://www.kaggle.com/arathee2/achieving-100-accuracy
相關文章
相關標籤/搜索