應用:資料預處理-缺失值填充
個人不建議填充缺失值,建議設定啞變數或者剔除該變數,填充成本較高
常見填充缺失值的方法:
1.均值、眾數填充,填充結果粗糙對模型訓練甚至有負面影響
2.直接根據沒有缺失的資料線性迴歸填充,這樣填充的好會共線性,填充的不好就沒價值,很矛盾
3.剔除或者設定啞變數
個人給出一個第二個方法的優化思路,供參考:
假設存在val1~val10的自變數,其中val1存在20%以上的缺失,現在用val2-val10的變數去填充val1,這邊參考了兩個模型的設計思路,一個是bagging演算法的隨機抽取避免過擬合,另一個是Tomek+Somte的填充方法
大概思路是:
1.隨機選取val1裡面的n/N個case(包括缺失case及非缺失case)作為樣本,隨機選取val2-val10內的m個衡量特徵
2.然後根據選擇的具體的m個資料的衡量特徵選擇相似度計算方式(常見的直接算距離、餘弦相似度之類),找出3-5個最臨近的非缺失case或者最遠的非缺失case(這裡涉及全域性或者區域性最優)
3.構造新的val1填充缺失的val1,新val1計算方式可以為3-5個非缺失的眾數、重心、隨機遊走、加權填充等
4.重複若干次,填充完所有缺失val1的點,當前的val1有非缺失case+填充case組成
5.這樣填充的方式存在填充case過擬合或者額外產生異常點的風險,所以需要做“新點檢測”,存在兩個邏輯:
5.1假設存在新填充點x,x附近最近的3-5點均為新填充點,及該點為危險點
5.2假設存在新填出點x,x距離最近的非缺失case距離大於預先設定的閥值(一般為離群處理後,所有非缺失case到缺失case距離的平均),及該點為危險點
6.危險點可以重新進行1-5,也可以剔除,視情況而定
在預處理後均衡樣本上填充,基於租車行業偷車使用者的年齡段填充,而後判斷某出行平臺使用者是否存在偷車可能,實際上做下來的ROC效果對比如下圖(資料有所隱逸,不代表官方資料):
相關文章
- 第四篇:資料預處理(一) - 缺失值處理
- 機器學習 第2篇:資料預處理(缺失值)機器學習
- 資料分析缺失值處理(Missing Values)——刪除法、填充法、插值法
- 缺失值填充
- 機器學習 第3篇:資料預處理(使用插補法處理缺失值)機器學習
- 機器學習 第4篇:資料預處理(sklearn 插補缺失值)機器學習
- 【scikit-learn基礎】--『預處理』之 缺失值處理
- 【Python資料分析基礎】: 資料缺失值處理Python
- Python資料分析基礎: 資料缺失值處理Python
- R缺失資料處理
- LeetCode-2887. 填充缺失值LeetCode
- Pandas 基礎 (5) - 處理缺失的資料
- Pandas高階教程之:處理缺失資料
- 如何應對缺失值帶來的分佈變化?探索填充缺失值的最佳插補演算法演算法
- 【譯文】R語言中的缺失值處理R語言
- 資料預處理
- Pandas缺失值處理 | 輕鬆玩轉Pandas(3)
- 關於python中填充缺失值的問題Python
- 資料預處理-資料清理
- 資料分析--資料預處理
- 海量資料找缺失的值
- 資料預處理 demo
- 處理資料缺失的結構化解決辦法
- 處理XML資料應用實踐XML
- [Python] Pandas 對資料進行查詢、替換、篩選、排序、重複值和缺失值處理Python排序
- 資料預處理-資料歸約
- 資料預處理–資料降維
- nlp 中文資料預處理
- 機器學習一:資料預處理機器學習
- 資料預處理規則
- 資料預處理的形式
- asm管理的dg資料檔案缺失的處理方法ASM
- 機器學習中資料缺失的處理及建模方法機器學習
- 資料預處理方法彙總
- 資料預處理和特徵工程特徵工程
- 機器學習筆記---資料預處理機器學習筆記
- TANet資料預處理流程
- 深度學習--資料預處理深度學習