問題:
為什麼一定要處理樣本不均衡?
什麼是交叉檢驗
什麼是正則化懲罰
怎麼運用交叉檢驗
怎麼運用正則化懲罰
以信用卡異常來舉例,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抽樣,其基本思想是 將乙個弱學習演算法使用多次 每次使用乙個放回的重複抽樣 並對結果進行投票,最後選取投票多的結果作為最終的結果 也可以通過得票的平均值...