評分卡的優勢:
- 可解釋性的對策
- 穩定性的要求及其對策
- 及時監控的要求
- 審核要求:分數分組、分區間
- 量化損失的要求,確定利息成本
特征工程的優化方向:
- 命名的規則化:因在特征變量的命名中包含:數據來源、 數據分布類型(連續型,離散型 )、 數據類型(字符、數字),以便做自動化
- 同源特征的自動化: 自動做 乘/除/ log 等操作,生成新衍生。
- 特征的分 bin:自動化計算最優分 bin (ChiMerge 算法)、 自動生成對應的分 bin 代碼邏輯(在命名規則的前提下)
- 對於 B/C 卡: 提供逾期類的細節時序特征的自動化生成: Rencent / Frequent / Count 等特征的自動生成
- (重點:支持后期監控,建模前的分時段進行特征分布檢測)GBDT的思想使其具有天然優勢可以發現多種有區分性的特征以及特征組合。業界中,Facebook使用其來自動發現有效的特征、特征組合,來作為LR模型中的特征,以提高 CTR預估(Click-Through Rate Prediction)的准確性(詳見參考文獻5、6);GBDT在淘寶的搜索及預測業務上也發揮了重要作用(詳見參考文獻7)。
- 為了保留用戶的逾期類的細節特征,可以加上時間維度,轉換成二維數據,使用 autoencoder 將數據轉換到新空間,再轉換成一維,方便入 LR,也可以以此與人工設計的統計類特征做對比。
特征選擇優化方向:
- 使用 variance Threshhold 篩除掉方差較低的特征
- 使用 f_regression(F-score) 方法來做特征篩選, 發現線性相關的特征
- 使用 mutual_infomation 來發現任意類型的相關性特征
- 使用 chi2 卡方檢驗(僅適用於離散特征,如統計量之類)做 特征與 label 的獨立性檢驗
- Spearman 順序型 秩相關系數
- Kendall 等級相關
- 使用 varcluster 或者 來根據高相關性特征-做特征分組篩選
- RFE (recursive features elimination) 特征篩選最優組合
- 使用 step-wise 做最優化特征組合的發現 :
- VIF 的共線性對於模型的影響:1. 容易過擬合 2. 如果入模型的特征變量中,多個模型特征能夠表達另一個特征,那說明這幾個特征中存在某個分量方向 與 另一特征變量夾角很小, 從而表現出類似於夾角很小的兩個向量的點乘結果較大,從而使得該向量方向對於模型的貢獻分值過大, 進而使得模型有偏,不穩定,影響模型表現。
模型訓練的優化方向:
- SMOTE
- 生成新樣本:使用 GAN 生成壞樣本 https://zhuanlan.zhihu.com/p/25071913
- 加權
- overSampling
- 使用mlxtend 來繪制模型分割面,以分析數據及模型的過擬合情況
- hyperopt
- 貝葉斯參數調優
模型集成:
- 將現有的 statsmodel 的模型訓練過程代碼嵌入到 sklearn 中, 讓他變成一個Pipeline的一部分,包含 dataSaver
- 利用 GBDT 生成的特征做model
- 分分鍾帶你殺入Kaggle Top 1% https://zhuanlan.zhihu.com/p/27424282
- 如何進入Top 10% https://dnc1994.com/2016/04/rank-10-percent-in-first-kaggle-competition/
- Xgboost 原理與調優 https://zhuanlan.zhihu.com/p/30848967?utm_medium=social&utm_source=wechat_session
監控的優化方向:
- psi 計算
- 打分異常問題自動計算定位
- 采用 auto_encoder + logistic 建模, 此時,需要監控的就是 auto_encoder 的各個維度, 可以做到提前發現異動, 但如何定位具體導致問題的原因所在,依然較為困難。
- 模型的分界面可視化:mlxtend
上線實施的優化方向:
- 優化實施過程:根據將訓練好的模型參數、分 bin 邏輯、woe 自動化輸出,生成實施過程需要的 分 bin 邏輯代碼、 woe 轉換代碼
- 優化實施打分與離線打分的核對流程:
-
- 實施打分表 與 離線打分表的結構統一,方便使用兩份數據的對應字段進行 分 bin 和 woe 的數值比對,確認離線與實施代碼的邏輯一致性。
- 提供自動核對與統計的代碼
- 數據預處理:
-
- Z-score
- 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)
- Std-norm
- 數據驗證:
-
- 各時間階段 ylabel 的分布
- 各類統計量
- 分 bin標准
-
- 好壞比(對數幾率? Logit? woe) 差15
- 最多 8 個分 bin
- 最少分組含有2%的樣本,其中不少於30的壞用戶樣本
- Bad_rate 單調遞減
- Bad rate 盡量等差
- 類別型的特征轉換
-
- LabelEncoder
- OneHotEncoder(dummies)
- Woe
- 單顆樹的葉子節點編號
- 數值類變量分組 或 類別型變量的離散化優化方法:
-
- Gini
- 卡方
- 信息熵增益 (決策樹的葉子節點編號,再合並分組,再確定目標數值?)
- WOE (非線性轉換,與強烈暗示性的數值)
- 篩選:
-
- Varclus 分組,
- 特征選擇:
-
- 單變量特征選擇:
-
- 回歸類:f_regression , mutual_info_regression
- 分類: chi2 , f_classif , mutual_info_classif
- 遞歸特征降維:sklearn 的 RFE方法
- http://scikit-learn.org/stable/modules/feature_selection.html
- 相似度
- unique column
- 特征取值極度不平衡: 99:1
- 全自動分箱 與 邏輯生成:
-
- 全自動分 bin:參考分 bin 標准
- 模型參數:
-
- imbalance
- 拒絕推斷對於模型的提升
-
- 建模初期選用的是 “有偏樣本” , 只選擇了在公司業務系統中有表現的用戶,實際上,還有之前並未通過系統的樣本也是申請者之一,他們屬於樣本總體,但卻被篩選掉了。
- 正確標准的做法是: 使用:對被拒絕用戶進行推斷演繹技術,即: 使用有偏的有變現用戶進行第一版建模,完成后,使用該模型對’‘被拒絕用戶’’進行預測, 然后 將預測的概率作為其權重, 重新加入訓練樣本中,重新分 bin 和建模,這樣才能用上原始的真正分布。
- 金融領域建模使用 ks 或者 auc的原因是什么
-
- ks 與 auc 可以量化區間的損失或者說壞賬率在承受范圍內, 並可以以此計算出放貸的基礎利率
- 正負樣本的不均衡使得像 accuracy 這類指標不適用。
評分卡 邏輯回歸中的模型指標解釋說明 :
- 卡方: 越接近1越好
- Adj. R-squared:
- F統計量: 大於 3.86
- Prob 統計量:
- logs 似然
- AIC :
- BIC :
- T 統計量:每個變量的絕對值都應大於 1.96
- P 值 > |t|:都應小於0.05
參考:
- SPSS分析技術:線性回歸分析(Evernote 有保存) https://zhuanlan.zhihu.com/p/25507503
- 回歸模型的一些判斷方法 (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
==============================================================================
參考:
F-test 與 互信息 在特征與 label 的相關性計算上的對比:
http://scikit-learn.org/stable/auto_examples/feature_selection/plot_f_test_vs_mi.html#sphx-glr-auto-examples-feature-selection-plot-f-test-vs-mi-py
嵌套交叉驗證Nested versus non-nested cross-validation:
多個模型用 AUC 作為篩選,用 TPR確定決策點:
http://scikit-learn.org/stable/auto_examples/model_selection/plot_roc_crossval.html#sphx-glr-auto-examples-model-selection-plot-roc-crossval-py
特征的聚類: 譜聚類(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
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