天天看點

kaggle競賽中關于預處理的知識

已知一批資料,希望利用這些資料做預測或分類,應該從哪裡開始入手? 直接把資料送給某個模型做訓練嗎? NO! 下面給出了一些需要在訓練之前考慮的事情

處理缺失資料

三種常用的方法   
* 直接用均值填充  
* 分析一下屬性的含義, 做針對性的轉換  
* 定義一個新的二值屬性,表示這一項是否缺失  
           

考慮删除方差較低的特征

方差較低的特征帶來的資訊量不大,可以考慮利用CV判斷其對模型的影響  
           

考慮删除異常資料

異常資料偏離資料聚類中心,可能是無效的資料,也可能是有效的資料,需要差別對待.

如何發現異常值?

* 如果特征或樣本不多, 可以通過觀察分布或可視化人工确定異常樣本   
* 先初步建立一個模型, 觀察預測值和真實值之間的差異,差距比較大的就可能是異常值  
           

異常樣本如何處理呢?

* 根據樣本含義
   比如房屋價格為負數,這種明顯需要删除
* 利用Cross-validation方法驗證異常樣本對模型的影響,決定是否删除
           

處理skewing

目前大部分機器學習方法都希望輸入資料符合高斯分布, 如果skewing值太大,可以考慮用log變換做矯正   
           

對類别特征進行one-hot-encoding

統一特征取值範圍

特征選擇

删除無效或重複的特征可以提高預測的魯棒性, 一個有效的特征篩選方法是
* 訓練一個線性預測器,篩選出權重較大的特征作為初始特征集, 
* 利用貪心算法,每次把一個篩選除去的特征加入特征集, 利用CV計算該特征對模型的改進效果
           

繼續閱讀