分類學習器的構建
目錄
- 變數選擇
- 變數篩選
- 模型選擇
- 變數預處理
- 模型設計和訓練
- 模型優化
- 模型檢驗
1、特徵選擇
在NLP模型、機器視覺模型等中,一般不存在變數選擇。而在消費信用模型中,屬於客戶的可用特徵可以非常多,有些明顯沒有用,有些需要重新構造/轉換。
2、特徵工程(變數篩選和處理)
這裡主要有兩個工作要做:
-
剔除無效、冗餘等變數。一個特徵變數,如果它跟因變數之間沒有因果關係或者貢獻很少,或者說如果它跟其他確定的特徵變數高度相關甚至存在
共線性
,或者說該變數在時間上不穩定時,我們應該考慮剔除該變數。 - 變數預處理。根據模型的要求和泛化效能的考慮,拿到變數後一般都要再處理,如連續變數的分箱、有序因子變數d額重新切分、分類變數的編碼(啞變數、onehot編碼、WOE編碼等)等。
這一節我們主要介紹第一種,事實上剔除變數的方法也可以用於變數的粗分類,例如拿到的年齡資料是以10歲分段的,我們可以將它粗分類為兩個類別(如30歲以下、30歲以上),那至於選用哪個點就可以用一些特徵選擇的方法了。
2.1 單變數檢驗法
單變數檢驗法有兩種目的,變數剔除和自變數的離散化處理(已經離散的也需要進行重新劃分)
單變數檢驗法實際上是在研究一個自變數對目標變數的影響,事實上也可以看成是單個自變數的評分模型,更進一步地,可以直接將自變數的取值當做是某種信用評分的得分,此時需要假設自變數是某種有序變數,也就是僅僅根據這個有序的自變數直接對目標變數進行預測。正是基於這種視角,我們可以將“模型效果的評價”與“自變數篩選及編碼”這兩個過程統一起來
因為是分類系統,相關係數一般很糟糕。常用的有兩個方法:卡方統計量和資訊量。
設樣本集為X(一共m個特徵和N個樣本),因變數為Y(一共K類),固定單個特徵A(取值為a1、a2、····aM),設nij=特徵A第i個類別中第j類的樣本數,則特徵A和因變數的列聯表如下:
第1類 | 第2類 | ····· | 第K類 | 合計 | |
---|---|---|---|---|---|
a1 | n11 | n12 | ···· | n1K | |
a2 | n21 | n22 | ···· | n2K | |
··· | ··· | ··· | ··· | ··· | |
aM | nM1 | nM2 | ···· | nMK | |
總體 | N |
*注:混淆矩陣等實際上就是預測分類變數和實際分類變數之間的列聯表
卡方統計量
卡方檢驗常用語兩個變數之間的顯著性檢驗,較大的卡方統計量表明因變數(標籤,輸出)跟特徵之間存在顯著的差異。
假定fo、fe分別為觀察頻數和期望頻數,則卡方統計量為:
其中R代表列聯表的行數,C代表列聯表的列數。
WOE(證據權重)和IV(資訊量)
這兩個指標僅限二分類任務。
考慮居住條件和好壞人數量之間的關係,下表給出了它們的列聯表(觀察頻數表):
居住條件 / 因變數 | 好人數量 | 壞人數量 |
---|---|---|
自有住房 | 570 | 30 |
租房 | 150 | 50 |
其他 | 180 | 20 |
總數 | 900 | 100 |
用概率論來考慮該問題。給定單個樣本資料$x \in X$,有條件概率p(G|x)和p(B|x)表示給定特定資料下好人和壞人的概率,且滿足:
如果想考察特徵x區分好壞借款人的表現,我們可以用特徵的均值之差:
該特徵的資訊量IV=0.615,一般IV值越大,該特徵越要保留。
這裡WOE是資訊比率I(x)的對數,WOE的值越大代表對應的變數對“是好人”的貢獻就越大,反之,越小就代表對應的變數對“是壞人”的貢獻越大。所以WOE值可以作為居住條件的一種編碼方式。
資訊增益、資訊增益率
-
熵:隨機變數X的熵被定義為:
-
聯合熵 和 條件熵:
兩個隨機變數的聯合熵被定義為: -
相對熵(K-L散度):相對熵是兩個隨機分佈之間距離的度量。在統計學中,它對應的是似然比的對數期望。相對上D(p||q)度量當真實分佈為p而假定分佈為q時的無效性。
-
資訊增益(互資訊):互資訊是一個隨機變數包含另一個隨機變數資訊量的度量,也是在給定另一隨機變數知識的條件下,原隨機變數不確定度的縮減量。
-
資訊增益比:
- 基尼指數(Gini)
2.3 多變數檢驗法
在迴歸方程中,用向前或者向後的逐步迴歸方式
[1]. 利用LendingClub資料建模
[2]. LendingClub資料集
相關文章
- 『sklearn學習』不同的 SVM 分類器
- 通過 TensorFlow 構建您的第一個深度學習分類器(以狗為例)!深度學習
- 手把手教你快速構建自定義分類器
- 如何用50行程式碼構建情感分類器行程
- 【C#學習筆記】類建構函式使用C#筆記函式
- Pytext實戰-構建一個文字分類器有多快文字分類
- C++:建構函式的分類和呼叫C++函式
- Python學習系列之類的定義、建構函式 def __init__Python函式
- 深度學習(二)之貓狗分類深度學習
- 入門系列之Scikit-learn在Python中構建機器學習分類器Python機器學習
- 深入學習Java虛擬機器——類檔案結構Java虛擬機
- Java的類載入器初學習Java
- c++ 的學習 建構函式1C++函式
- 學習如何用 VIPER 構建iOS架構iOS架構
- 設計師值得學習的分類網站網站
- PHP 手冊 (類與物件) 學習筆記五:建構函式和解構函式PHP物件筆記函式
- 預設建構函式學習函式
- 訓練一個影像分類器demo in PyTorch【學習筆記】PyTorch筆記
- 遷移學習時間序列分類遷移學習
- IO模型學習(一)IO模型分類模型
- VR垃圾分類體驗系統:學習垃圾分類知識科普VR
- Mahout分類演算法學習之實現Naive Bayes分類示例演算法AI
- Docker構建自己的容器(學習筆記二)Docker筆記
- 效能優化小冊 - 分類構建:利用好 webpack hash優化Web
- 伺服器的分類伺服器
- 豐田如何構建"學習型企業"
- Docker容器學習梳理 - Dockerfile構建映象Docker
- LLM學習(四)——構建 RAG 應用
- Linux上TensorFlow的深入研究:構建一個低成本、快速、精準的影象分類器Linux
- Flair初體驗,如何構建文字分類器?AI文字分類
- 從分類到結構之CSS選擇器CSS
- JVM學習--Class類檔案結構JVM
- 類的建構函式和解構函式函式
- 構建工作技能共同語言:全球分類學
- 作者推薦的學習方法——外部體系構建
- 乾貨 | 深度學習在文字分類中的應用深度學習文字分類
- 影像分類學習:X光胸片診斷識別----遷移學習遷移學習
- keras框架下的深度學習(二)二分類和多分類問題Keras框架深度學習