樣本不均衡處理方法 交叉檢驗 正則化懲罰

2021-09-11 17:32:26 字數 1443 閱讀 9402

問題:

為什麼一定要處理樣本不均衡?

什麼是交叉檢驗

什麼是正則化懲罰

怎麼運用交叉檢驗

怎麼運用正則化懲罰

以信用卡異常來舉例,0是正常,1是異常

簡單觀察資料(這裡的資料已經經過預處理),發現樣本不均衡情況,(常理)0的數量比1的數量多得多。

處理樣本不均衡有兩種方法,一是下取樣(使之一樣少),二是過取樣(使之一樣多)

為什麼一定要處理樣本不均衡?

如果樣本不均衡的時候,訓練模型的時候,容易誤殺,換而言之,就是容易找不出異常的,不清楚異常的資料是怎樣的

因為模型遇到的大多數都是正常的資料,那麼引數也很容易是為了能夠識別正常的資料而進行的調整。

但我們的目標很明顯——是為了識別出那些異常的資料。那麼就不可以直接用樣本不均衡的模型來**,效果肯定是不好的。

下取樣:使01兩個類別的資料一樣少。

那麼就是對0(數量多的那乙個類別)進行隨機抽樣,抽取的數量和1相同。之後合併兩個資料(抽樣的0和完整的1,兩個資料)

很明顯,合併後的資料數量肯定是少的多,我們進行最後的測試,自然不能在下取樣資料集的測試集上做,下取樣資料集不能反映原資料集的分布規律。

同樣因為資料少的問題,下取樣與過取樣相比,誤殺率會高(把0當做了1的部分數量較多),精度會低,recall相對會高那麼一點。

過取樣:使01兩個資料一樣多。

對1(數量少的那乙個類別)進行smote生成策略,先對1的每乙個樣本找其近鄰,確定擴充套件的倍數,例如5倍,那麼就找每個樣本自己的5個近鄰,對每乙個近鄰進行新資料的生成(用到隨機函式),那麼每一條樣本都能生成5條新的類似的資料,最後整個樣本就擴大了5倍。

過取樣因為資料多,訓練的效果其實會比下取樣好一點,精度更高一點,也就是誤殺更低。

因此我們大多數遇到樣本不均衡的問題首選過取樣。資料多,調整的引數也更加合適。

交叉檢驗

交叉進行檢驗的意思吧

對訓練集進行均等分,然後選擇其中幾個當做訓練集,另乙個當做驗證集

在調整引數階段,用訓練集訓練,用驗證集當做調整效果的檢驗

同時,最後這是多組檢驗後的效果

例如,我們對訓練集均等分3份,那麼

1+2作為訓練集,3作為驗證集

1+3作為訓練集,2作為驗證集

2+3作為訓練集,1作為驗證集

經過三次的調整

在最後的測試之前也能知道模型的效果(累和測試的結果,然後取均值),同時也能更好調整引數和後面對模型的補充,如正則化懲罰。

正則化懲罰

在原有模型後面加上正則化懲罰,如l1,l 2。

正則化懲罰是避免引數泛化程度過高或過低,也就是避免過擬合和欠擬合的情況。

也就是有些引數的權重太大,有些太小,那麼就很容易篩選出某些型別的資料(適應了訓練集中的資料),這時候就是過擬合了

應用正則化懲罰,需要確定其懲罰力度,對應不同的情況需要的力度也不同

也就需要不斷地去嘗試,直到找到乙個模型效果不錯的力度

樣本不均衡

在分類中,訓練資料不均衡是指不同類別下的樣本數目相差巨大。舉兩個例子 在乙個二分類問題中,訓練集中class 1的樣本數比上class 2的樣本數的比值為60 1。使用邏輯回歸進行分類,最後結果是其忽略了class 2,將所有的訓練樣本都分類為class 1。在三分類問題中,三個類別分別為a,b,c...

樣本不均衡問題

樣本不均衡是機器學習,深度學習中常見問題。分類任務 a 95 b 5 模型將所有樣本 為a,那麼正確率可以達到95 第一種 是把多的那個組變少 降取樣 第二種 是把少的那個組變多 過取樣 最簡單的是oversampling,由於其侷限性,又有很多根據已有的資料生成新資料的方法,比如各種變體的synt...

樣本不均衡問題 bagging方法

bagging是一種用來提高學習演算法準確度的方法,這種方法通過構造乙個 函式系列,然後以一定的方式將它們組合成乙個 函式。它使用bootstrap抽樣,其基本思想是 將乙個弱學習演算法使用多次 每次使用乙個放回的重複抽樣 並對結果進行投票,最後選取投票多的結果作為最終的結果 也可以通過得票的平均值...