數據清洗方法

數據挖掘中經常使用的數據清洗方法有哪些? 算法

原文連接:https://www.zhihu.com/question/22077960 sql

 

從兩個角度看,數據清洗一是爲了解決數據質量問題,,二是讓數據更適合作挖掘。不一樣的目的下分不一樣的狀況,也都有相應的解決方式和方法。 數據庫

包括缺失值處理、異常值處理、重複值處理、空值填充、統一單位、是否標準化處理、是否刪除無必要的變量、是否排序、是否進行主成分或因子分析等等。 工具

  1. 解決數據質量問題

    解決數據的各類問題,包括但不限於: spa

    1. 數據的完整性----例如人的屬性中缺乏性別、籍貫、年齡等
    2. 數據的惟一性----例如不一樣來源的數據出現重複的狀況
    3. 數據的權威性----例如同一個指標出現多個來源的數據,且數值不同
    4. 數據的合法性----例如獲取的數據與常識不符,年齡大於150歲
    5. 數據的一致性----例如不一樣來源的不一樣指標,實際內涵是同樣的,或是同一指標內涵不一致

數據清洗的結果是對各類髒數據進行對應方式的處理,獲得標準的、乾淨的、連續的數據,提供給數據統計、數據挖掘等使用。 excel

那麼爲了解決以上的各類問題,咱們須要不一樣的手段和方法來一一處理。 排序

每種問題都有各類狀況,每種狀況適用不一樣的處理方法,具體以下: get

1.1解決數據的完整性問題:(數據缺失,那麼補上就行了) 數據挖掘

補數據有什麼方法? io

  1. 經過其餘信息補全,例如使用身份證號碼推算性別、籍貫、出生日期、年齡等等。
  2. 經過先後數據補全,例如時間序列缺數據了,可使用先後的均值,缺的多了,可使用平滑等處理,記得Matlab仍是什麼工具能夠自動補全
  3. 實在補不全的,雖然很惋惜,但也必需要剔除。可是不要刪掉,沒準之後能夠用得上

1.2解決數據的惟一性問題(解題思路:去除重複記錄,只保留一條。)

去重的方法有:

  1. 按主鍵去重,用sql或者excel"去除重複記錄"便可,
  2. 按規則去重,編寫一系列的規則,對重複狀況複雜的數據進行去重。例如不一樣渠道來的客戶數據,能夠經過相同的關鍵信息進行匹配,合併去重。

1.3解決數據的權威型問題

解題思路:用最權威的個渠道的數據

方法:

  1. 對不一樣渠道設定權威級別,例如:在家裏,首先得相信媳婦說的。。

1.4解決數據的合法性問題

解題思路:設定斷定規則

  1. 設定強制合法規則,凡是不在此規則範圍內的,強制設爲最大值,或者判爲無效,剔除

    字段類型合法規則:日期字段格式爲"2010-10-10"

    字段內容合法規則:性別 in (男、女、未知);出生日期<=今天

  2. 設定警告規則,凡是不在此規則範圍內的,進行警告,而後人工處理

    警告規則:年齡》110

  3. 離羣值人工特殊處理,使用分箱、聚類、迴歸、等方式發現離羣值

1.5解決數據的一致性問題

解題思路:創建數據體系,包含但不限於:

  1. 指標體系(度量)
  2. 維度
  3. 單位
  4. 頻度
  5. 數據
  1. 讓數據更適合作挖掘或展現

    目標包括但不限於:

    1. 高緯度----不適合挖掘
    2. 維度過低----不適合挖掘
    3. 無關信息----減小存儲
    4. 字段冗餘----一個字段是其餘字段計算出來的,會形成相關係數爲1或者主成因分析異常
    5. 多指標數值、單位不一樣----如GDP與城鎮居民人均收入數值相差過大

    2.1解決高緯度問題

    解題思路:降維,方法包括但不限於:

    1. 主成分分析
    2. 隨機森林

    2.2解決維度低或缺乏維度問題

    解題思路:抽象,方法包括但不限於:

    1. 各類彙總,平均、加總、最大、最小
    2. 各類離散化,聚類等

    2.3解決無關信息和字段冗餘(解決方法:剔除字段)

    2.4解決多指標數值、單位不一樣問題

    解決方法:歸一化

  2. 如何刪除重複項

    因爲各類緣由,數據中可能存在重複記錄或重複字段(列),對於這些重複項目(行和列)須要作去重處理。對於重複項的判斷,基本思想是"排序和合並",先將數據庫中的記錄按必定規則排序,而後經過比較鄰近記錄是否類似來檢測記錄是否重複。這裏面其實包含了兩個操做,一是排序,二是計算類似度。

常見的排序算法:

插入排序、冒泡排序、選擇排序、快速排序、堆排序、歸併排序、基數排序、希爾排序

常見判斷類似度的算法:

基本的字段匹配算法、標準化歐氏距離、漢明距離、夾角餘弦、曼哈頓距離、歐氏距離、切比雪夫距離、相關係數、信息熵等等

對於重複的數據項,儘可能須要通過業務確認並進行整理提取出規則。在清洗轉換階段,對於重複數據項儘可能不要輕易作出刪除決策,尤爲不能將重要的或有業務意義的數據過濾掉,校驗和重複確認的工做必不可少

相關文章
相關標籤/搜索