<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          提分策略:數(shù)據(jù)采樣方法最全總結(jié)!

          共 3272字,需瀏覽 7分鐘

           ·

          2020-11-27 05:00

          采樣策略匯總




          背景


          數(shù)據(jù)采樣很多人都聽過,書上亦或是博客上面,但并不是每個人在實踐中都會用到,按實踐經(jīng)驗來講,原始數(shù)據(jù)包含了所有的信息,我們隨意增加數(shù)據(jù)亦或者是刪除數(shù)據(jù),完全是沒有必要的操作。那為什么要采樣?又有哪些采樣策略?這些策略又大概能帶來什么幫助呢?怎么做?需要注意什么?本文對數(shù)據(jù)采樣做個簡單的匯總。有些是個人理解(例如偽標簽等),可能存在些許小的爭議,大家按自己理解參考融入自己知識體系即可。


          采樣策略匯總


          1.隨機降采樣


          常見使用場景


          1.大數(shù)據(jù)分析
          :隨機采樣在數(shù)據(jù)競賽中,我們一般當數(shù)據(jù)非常大的時候,而我們本地的機器又load不了這么多數(shù)據(jù),亦或是我們的機器能load進這么多數(shù)據(jù),但是在做一些分析時特別耗時,那么這個時候我們一般會隨機采樣一定百分比的數(shù)據(jù)來進行數(shù)據(jù)的分析,使我們對數(shù)據(jù)的屬性有較好的了解。

          2.模型訓練驗證:在很多問題中我們的數(shù)據(jù)量是巨大的,例如搜索推薦等問題,我們的用戶數(shù)都是上億的,這個時候我們的數(shù)據(jù)動則上幾十億,做完特征之后可能都會上PB級別,這個時候如果還是采用全量數(shù)據(jù)訓練的話,那么可能一個模型需要一周甚至更久才會看到效果,這樣的迭代速度往往是不能接受的,所以我們需要不斷的采樣,在保證我們線下有提升的同時線上全量時也有提升;

          操作

          直接隨機sample,亦或是直接截取topN%的數(shù)據(jù)。

          注意

          模型訓練預測時,先做特征再采樣再集成。


          2.Tomek Links采樣



          常見使用場景

          模型訓練:該方法一般個人很少在數(shù)據(jù)分析時使用,往往是在模型訓練的時候,Tomek Links會將決策邊界附近的樣本剔除,整理出一個看上去更加易于分割的決策邊界。在模型訓練的時候有嘗試過,效果略有下降,有興趣的朋友可以自己嘗試一下。

          操作

          python的imblearn中有TomekLinks采樣。

          注意

          3.基于聚類中心的采樣



          常見使用場景

          數(shù)據(jù)分析:該方法思路很簡單,就是先聚類然后用聚類中心作為采樣的點代表整個類中的樣本,比如100個樣本聚類成了10個,那么就可以用10個點來代表這100個樣本,從而達到降采樣的作用。一般用作數(shù)據(jù)分析可視化相對較好,用于模型訓練可能效果會差一些。

          操作

          python的imblearn中有ClusterCentroids采樣。

          注意

          4.時間序列采樣



          常見使用場景

          時間驗證分析:幾乎所有涉及到時間的問題,例如推薦問題,銷量預測,流量預測等問題在線下驗證的時候都需要按照時間順序進行劃分,因為存在較強的時間關系,如果使用未來的信息肯定會導致穿越問題,帶來線上線下不一致,導致所有線下的實驗都是白努力。所以如果應用在工業(yè)實踐中,必須在做任何特征工程之前就將數(shù)據(jù)進行拆分,然后再進行特征建模。

          操作

          直接按照某個特定的時間軸進行切分即可,選擇python里面也有TimeSeriesSplit等函數(shù)。

          注意

          某些特殊節(jié)假日等數(shù)據(jù)考慮剔除最好。


          5.分組采樣



          常見使用場景

          防止穿越:也可以認為是防止穿越的一種,例如我們用戶一次在一個頁面中只會點擊一個商品,而如果我們隨機采樣線下訓練驗證的話,就會出現(xiàn)一個頁面中的不同item被分配到訓練集和驗證集中,這個時候我們只要發(fā)現(xiàn)訓練集中的item有被點擊的情況,那么在驗證集中的樣本肯定就是沒有點擊的,而這明顯是出現(xiàn)了穿越,出現(xiàn)了我們的驗證分數(shù)虛高的情況,所以此時按照頁面進行分組采樣時更好更靠譜的選擇。

          操作

          目前python的采樣策略中已經(jīng)有現(xiàn)成的分組采樣包GroupKFold,直接調(diào)用即可。

          注意

          6.分層采樣



          常見使用場景

          數(shù)據(jù)驗證:舉個例子,訓練集合有三個城鎮(zhèn)的數(shù)據(jù),A城鎮(zhèn)有100萬樣本,B城鎮(zhèn)有10萬樣本,C城鎮(zhèn)有1萬樣本,測試集的比例類似。這個時候我們需要對其進行分析驗證,如果隨機采樣訓練驗證,會出現(xiàn)我們把C城鎮(zhèn)的樣本全部采樣到了訓練集合里面,那么此時我們的驗證的分數(shù)和測試的分數(shù)相差較大,而且五折的時候因為采樣的問題折折的gap也不是很穩(wěn)定。這個時候分層采樣就十分重要了。

          操作

          目前python的采樣策略中已經(jīng)有現(xiàn)成的分層采樣包,直接調(diào)用即可。

          注意

          7.簡單過采樣


          常見使用場景

          類別不平衡:過采樣一般出現(xiàn)在類別不平衡問題中,對label較少的樣本進行過采樣,用來降低過擬合的風險。

          操作

          很簡單,直接random一定比例拷貝即可。

          注意

          過采樣不同的比例訓練模型預測再進行集成往往效果更好。


          8.SMOTE過采樣


          常見使用場景

          類別不平衡:很簡單過采樣類似, SMOTE過采樣也經(jīng)常出現(xiàn)在類別不平衡問題中,通過與類別少的樣本最近的K個近鄰點構(gòu)建相似的樣本,來緩解類別不平衡的問題,降低過擬合的風險。不過很多實驗證明,SMOTE采樣最終的訓練效果要略好于隨機的復制形式的過采樣。

          操作

          目前python自帶SMOTE函數(shù),直接調(diào)用即可。

          注意

          9.翻轉(zhuǎn)裁剪等數(shù)字圖像處理常見方案



          常見使用場景

          數(shù)字圖像處理:這是一種數(shù)據(jù)擴充的方案,通過翻轉(zhuǎn),裁剪等操作來處理圖片從而擴充數(shù)據(jù)樣本。

          操作

          目前python里面處理圖像的函數(shù)中一般都自帶。

          注意

          10.GAN生成對抗樣本



          GAN從誕生到現(xiàn)在都很火,所以在很多競賽中也都會聽到有很多選手使用GAN模型生成一些新樣本用于模型訓練,因為成功案例不多,沒有深入了解。建議對GAN非常熟練的朋友可以構(gòu)建一些成功案例。

          11.人工采樣or外部數(shù)據(jù)

          常見使用場景

          可以拿到相關數(shù)據(jù)的所有場景?,F(xiàn)在有很多數(shù)據(jù)是可以通過外部數(shù)據(jù)得到的,比如很多標注圖片,還有一些數(shù)據(jù)是可以通過人工進行收集的,比如一些手機的行為等數(shù)據(jù)。

          操作

          上網(wǎng)或者自行收集。

          注意

          12.偽標簽


          常見使用場景

          幾乎所有場景:偽標簽技術其實是一種半監(jiān)督技術,它用在訓練集合上訓練好的模型對測試集進行預測,然后選取測試集高置信度的樣本加入到訓練集中,也類似于數(shù)據(jù)擴充了,所以我把它加入進來,僅供參考。

          操作

          參見之前的偽標簽技術。

          注意

          可多輪迭代,需要微調(diào)置信度。


          參考文獻


          1. Strategies for Addressing Class Imbalance:https://medium.com/@ODSC/strategies-for-addressing-class-imbalance-5b31b73f7b6f
          2. The 5 Sampling Algorithms every Data Scientist need to know:https://towardsdatascience.com/the-5-sampling-algorithms-every-data-scientist-need-to-know-43c7bc11d17c
          3. https://scikit-learn.org/stable/modules/classes.html#module-sklearn.model_selection
          4. Tackling Class imbalance:https://www.kaggle.com/shahules/tackling-class-imbalance
          5. Learning from Imbalanced Classes:https://www.svds.com/learning-imbalanced-classes/
          6. Dealing with Imbalance Data:https://medium.com/@patiladitya81295/dealing-with-imbalance-data-1bacc7d68dff
          7. Resampling strategies for imbalanced datasets:https://www.kaggle.com/rafjaa/resampling-strategies-for-imbalanced-datasets


          “干貨學習,三連
          瀏覽 118
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产 无码 精品 | 日日干干视频 | 大香蕉视频99一本 | 日本一级红色片 | 午夜福利影视 |