分類學習器的構建
目錄
- 變數選擇
- 變數篩選
- 模型選擇
- 變數預處理
- 模型設計和訓練
- 模型優化
- 模型檢驗
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資料集
相關文章
- 入門系列之Scikit-learn在Python中構建機器學習分類器Python機器學習
- 《Python機器學習》作者科普長文:從頭構建類GPT文字分類器,程式碼開源Python機器學習GPT文字分類
- 通過 TensorFlow 構建您的第一個深度學習分類器(以狗為例)!深度學習
- 機器學習常用的分類器比較機器學習
- 【火爐煉AI】機器學習014-用SVM構建非線性分類模型AI機器學習模型
- 機器學習--有監督學習--分類演算法(預測分類)機器學習演算法
- 【機器學習】支援向量機分類機器學習
- 手把手教你快速構建自定義分類器
- 從零開始學機器學習——初探分類器機器學習
- Pytext實戰-構建一個文字分類器有多快文字分類
- 如何用50行程式碼構建情感分類器行程
- 如何用機器學習對文字分類機器學習文字分類
- 從零開始學機器學習——分類器詳解機器學習
- 機器學習之使用sklearn構建據類模型,並且評價模型機器學習模型
- C++學習筆記-----類和建構函式C++筆記函式
- 使用Kubeflow構建機器學習流水線機器學習
- 如何構建一臺機器學習伺服器機器學習伺服器
- 機器學習--分類變數編碼方法機器學習變數
- 機器學習3-分類演算法機器學習演算法
- 機器學習十講-第三講分類機器學習
- C++:建構函式的分類和呼叫C++函式
- 強化學習分類強化學習
- 人工智慧 (02) 機器學習 - 監督式學習分類方法人工智慧機器學習
- 機器學習:神經網路構建(上)機器學習神經網路
- 機器學習:神經網路構建(下)機器學習神經網路
- 機器學習總結(2)—分類中的代數模型機器學習模型
- 機器學習讀書筆記:貝葉斯分類器機器學習筆記
- 機器學習4-分類演算法2機器學習演算法
- 機器學習之樸素貝葉斯分類機器學習
- 機器學習實戰(三)決策樹ID3:樹的構建和簡單分類機器學習
- Python學習系列之類的定義、建構函式 def __init__Python函式
- 從線性模型(linear model)衍生出的機器學習分類器(classifier)模型機器學習
- 機器學習入門系列(2)--如何構建一個完整的機器學習專案(一)機器學習
- CMake構建學習筆記13-opencv庫的構建筆記OpenCV
- CMake構建學習筆記12-libzip庫的構建筆記
- CMake構建學習筆記11-minizip庫的構建筆記
- CMake構建學習筆記4-libjpeg庫的構建筆記
- CMake構建學習筆記5-libtiff庫的構建筆記
- CMake構建學習筆記6-giflib庫的構建筆記