客户流失预警模型-GBDT模型
GBDT模型參數問題,這里我們以sklearn里面的GBDT為例來說,打開網址sklearn.ensemble.GradientBoostingClassifier。這里我們不關注GBDT里面的所有參數意義,只解釋下在對金融數據建模調參時最常用的一些參數意義:
GBDT框架的參數
n_estimators: 分類樹的個數,即K
learning_rate: 即每個弱學習器的權重縮減系數ν,也稱作步長。較小的ν意味著需要更多
的弱學習器的迭代次數。參數n_estimators和learning_rate要一起調參。可以從一個小一點 的ν開始調參,默認是1
Subsample: (不放回)抽樣率,推薦在[0.5, 0.8]之間,默認是1.0,即不使用子采樣
init: 即初始化的時候的弱學習器,一般用在對數據有先驗知識,或者之前做過一些擬合的時候
loss: 即GBDT算法中的損失函數
弱分類樹的參數
max_features: 劃分時考慮的最大特征數
max_depth: 決策樹最大深度
min_samples_split:內部節點再劃分所需最小樣本數。默認是2.如果樣本量不大,不需要管
這個值。如果樣本量數量級非常大,則推薦增大這個值
min_samples_leaf: 葉子節點最少樣本數
min_weight_fraction_leaf:葉子節點最小的樣本權重。默認是0,就是不考慮權重問題。
一般來說,如果我們有較多樣本有缺失值,或者分類樹樣本的分布類別偏差很大,就會引 入樣本權重,這時我們就要注意這個值了
max_leaf_nodes: 最大葉子節點數,通過限制最大葉子節點數,可以防止過擬合
min_impurity_split: 節點劃分最小不純度
表示分類正確:
- True Positive:本來是正樣例,分類成正樣例。
- True Negative:本來是負樣例,分類成負樣例。
表示分類錯誤:
- False Positive :本來是負樣例,分類成正樣例,通常叫誤報。
- False Negative:本來是正樣例,分類成負樣例,通常叫漏報。
準確度
真正類率(True Postive Rate)TPR: TP/(TP+FN),代表分類器預測的正類中實際正實例占 所有正實例的比例。Sensitivity
負正類率(False Postive Rate)FPR: FP/(FP+TN),代表分類器預測的正類中實際負實例 占所有負實例的比例。1-Specificity
真負類率(True Negative Rate)TNR: TN/(FP+TN),代表分類器預測的負類中實際負實例 占所有負實例的比例,TNR=1-FPR。Specificity
真正類率(True Postive Rate)TPR就是查全率
分類器給出針對每個實例為正類的概率,那么通過設定一個閾值如0.6,概率大于等于0.6的為正類,小于0.6的為負類。對應的就可以算出一組(FPR,TPR),在平面中得到對應坐標點。隨著閾值的逐漸減小,越來越多的實例被劃分為正類,但是這些正類中同樣也摻雜著真正的負實例,即TPR和FPR會同時增大。閾值最大時,對應坐標點為(0,0),閾值最小時,對應坐標點(1,1)。
AUC是圖中曲線下方的面積,值越大,分類效果越佳
通常情況下AUC越大學習器的效果越好。,即若一個學習器的ROC曲線被另外一個學習器曲線完全包住,那么可以斷言,后一個學習器的性能優于前者。如果發生交叉則難以比較,如果非要比較,比較合理的判斷是比較ROC下的面積即AUC大小。
GBDT在流失預警模型中的應用
使用默認參數,在訓練集上
都還不錯。但是能不能更好點?
首先我們從步長(learning rate)和迭代次數(n_estimators)入手。一般來說,開始選擇一個較小的步長來網格搜索最好的迭代次數。這里,我們將步長初始值設置為0.1,迭代次數的搜索范圍是20~80
最好的迭代次數是70,對應的score是85.10%。
好像比默認參數的效果差。。。。
找到了一個合適的迭代次數,現在我們開始對決策樹進行調參。首先我們對決策樹最大深度max_depth和內部節點再劃分所需最小樣本樣min_samples_split進行網格搜索。搜索的范圍分別是3~13和 100~800
最佳的最大深度和最小樣本數分別是9和500,對應的score是85.36%
由于決策樹深度9是一個比較合理的值,我們把它定下來,對于內部節點再劃分所需最小樣本數min_samples_split,我們暫時不能一起定下來,因為這個還和決策樹其他的參數存在關聯。下面我們再對內部節點再劃分所需最小樣本數min_samples_split和葉子節點最少樣本數min_samples_leaf一起調參。調整范圍分別是400~1000,以及60~100。
最佳的最小樣本數和葉節點最小樣本數分別是500和70,對應的score是85.54%
現在我們再對最大特征數max_features進行網格搜索, 范圍從5 到25,最佳值是25.
BUT !
對于邊界值,通常還要再放大范圍。我們將范圍擴大到30,最佳值是28.
再對子采樣的比例進行網格搜索,范圍從0.6到0.9, 最佳值是0.8.
現在我們基本已經得到我們所有調優的參數結果了。這時我們可以減半步長,最大迭代次數加倍來增加我們模型的泛化能力。再次擬合我們的模型,得到的最優步長是0.05,最大迭代次數是1000,在訓練集和測試集上的表現是:
來源于66號學苑
版權聲明:本公眾號如有引用和轉載他人文章,則必定會在文章中標明原文的作者和來源出處。如有侵權,請聯系微信wmyd80或后臺留言,我們將在第一時間予以處理。
總結
以上是生活随笔為你收集整理的客户流失预警模型-GBDT模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python评分卡建模-卡方分箱(2)之
- 下一篇: 【未来可能用到】关于模型的100个问答-