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