數據挖掘:數據預處理相關概念

數據挖掘:數據預處理相關概念

在這裏插入圖片描述

一、什麼是數據預處理?

一般我們得到的數據會存在有缺失值、重複值等,在使用之前需要進行數據預處理。它是一系列對數據操作的統稱。
數據預處理沒有標準的流程,通常針對不同的任務和數據集屬性的不同而不同。數據預處理的常用流程爲:

  1. 數據清洗:可以用來清楚數據中的噪聲,糾正不一致。
  2. 數據集成:將數據由多個數據源合併成一個一致的數據存儲,如數據倉庫。
  3. 數據歸約:可以通過如聚集、刪除冗餘特徵或聚類來降低數據的規模。
  4. 數據變換:(例如,規範化)可以用來把數據壓縮到較小的區間,如0.0到1.0。

原始數據存在的幾個問題:不一致;重複;含噪聲;維度高等問題。

二、數據清洗

一般數據清洗包括:

  1. 缺失值
  2. 異常值
  3. 數據噪聲
  4. 數據不平衡
  5. 唯一值
  6. 重複值
  7. 格式清洗
  8. 思維邏輯

前4個在之前的文章已經提到了,接下來介紹後四個處理方法。

缺失值處理
異常值處理
數據噪聲處理
數據不平衡處理

2.1 唯一值

如數據中id這個屬性,如果每條數據都對應同一個id,那麼該特徵對數據的預測就沒有任何意義,可刪除該列數據。

但並不是所有數據的id都是無意義的。如果每個id都對應了很多的數據,則此時不應刪除該id,而是對每個id中的數據進行統計分析。將一個id看做一組數據單獨去分析,得到均值、中位數、標準差、峯度、偏度等描述該組分佈的信息,整合爲一個數據。這樣每條數據纔會對應一個id,進而再刪除id。要根據具體的數據應用場景去判斷,而不是一上來就刪除數據。

2.2 重複值

重複值是無意義的數據,增加了數據量,但卻沒有增加數據的信息量。一般是將重複值刪除。pandas裏用data.drop_duplicates()函數進行刪除。
鏈接:pandas重複值處理

2.3 格式清洗

2.3.1 數據類型

一般得到的數據雜亂無章,有的數據是數字、時間卻是字符串表示,數據類型對不上。此時,應先對數據類型進行轉換,否則無法進行正常運算操作。

在pandas裏可用astype(數據類型),或者to_numeric(),進行轉換。
鏈接:pandas數據類型轉換

2.3.2 時間、日期、數值、全半角等顯示格式不一致

這種問題通常與輸入端有關,在整合多來源數據時也有可能遇到,將其處理成一致的某種格式即可。

2.3.3 字符問題

某些內容可能只包括一部分字符,比如身份證號是數字+字母,中國人姓名是漢字(趙C這種情況還是少數)。最典型的就是頭、尾、中間的空格,也可能出現姓名中存在數字符號、身份證號中出現漢字等問題。這種情況下,需要以半自動校驗半人工方式來找出可能存在的問題,並去除不需要的字符。

2.3.4 思維邏輯

這個比較玄乎,先通過舉例讓大家感受下。比如預測電影票房。票房的數據是不能直接拿過來就用的,因爲存在通貨膨脹,需要對票房進行一定的換算,這樣的票房纔是能用的數據。也就是說,用的數據是需要符合正常邏輯性的。另外,數據單位的轉換,跟業務的關聯性也是需要考慮的。
說明
總之,數據清洗方面的工作有很多……而且,如果數據處理不好,特徵沒有選好,那麼模型再厲害,也無濟於事。所以纔會經常看到這樣的話,在工作或者競賽中,數據清洗,特徵工程方面的工作佔據了80%以上的時間。其餘模型的使用,需要知道原理,進而調包搭建模型即可。

三、數據集成

數據集成是指把數據從多個數據源整合在一起,提供一個觀察這些數據的統一視圖的過程。建立數據倉庫的過程實際上就是數據集成。

數據集成中的兩個主要問題是:

  1. 數據結構。如何對多個數據集進行匹配,當一個數據庫的屬性與另一個數據庫的屬性匹配時,必須注意數據的結構;
  2. 數據冗餘。兩個數據集有兩個命名不同但實際數據相同的屬性,那麼其中一個屬性就是冗餘的。

鏈接:數據集成

四、數據歸約

數據歸約是指在儘可能保持數據原貌的前提下,最大限度地精簡數據量。

數據挖掘時往往數據量非常大,在少量數據上進行挖掘分析需要很長的時間,數據歸約技術可以用來得到數據集的歸約表示,它小得多,但仍然接近於保持原數據的完整性,並結果與歸約前結果相同或幾乎相同。通常有維歸約、數值歸約
維歸約指通過減少屬性的方式壓縮數據量,通過移除不相關的屬性,可以提高模型效率。
常見的維歸約方法有:分類樹、隨機森林通過對分類效果的影響大小篩選屬性;小波變換、主成分分析通過把原數據變換或投影到較小的空間來降低維數。

數值歸約用較小的數據表示形式替換原始數據。代表方法爲對數線性迴歸、聚類、抽樣等。

鏈接:數據規約詳細介紹

五、數據變換

通過平滑聚集,數據概化,規範化等方式將數據轉換成適用於數據挖掘的形式。比如說,對於線性迴歸,數據進行歸一化或標準化,統一量綱後的效果要比之前要好。因爲是用距離去度量的,而樹模型則不用進行這種變換。

  1. 光滑:去掉噪聲;
  2. 特徵構造:由給定的屬性構造出新屬性並添加到數據集中。例如,通過“銷售額”和“成本”構造出“利潤”,只需要對相應屬性數據進行簡單變換即可
  3. 聚集:對數據進行彙總。比如通過日銷售數據,計算月和年的銷售數據;
  4. 規範化:把數據單按比例縮放,比如數據標準化處理;
  5. 離散化:將定量數據向定性數據轉化。比如一系列連續數據,可用標籤進行替換(0,1);

六、總結

之前對數據清洗,數據預處理,特徵工程等概念比較混淆。通過查找不同的資料,也發現有的定義不太一樣,比如特徵工程包括了數據預處理,數據清洗,而數據預處理有時又包括了數據清洗和特徵工程的一部分。
通過本次探究,把數據預處理歸爲模型預測前的所有處理過程,包括了數據清洗和特徵工程
數據清洗專門對髒數據進行清洗,而不設涉及數據的變換和特徵處理。特徵工程則包括了剩下的所有處理方法。
說明
數據預處理的方法有很多,在處理數據,或者數據競賽時,不一定都會用上。需要對數據進行探索性分析,瞭解數據後,根據數據本身特徵和預測目標而合理選擇相應的方法。
不要拘泥於用所有方法都對數據用一遍,這樣不僅自己很累,也得不到想要的效果。包括後面要介紹的各種機器學習的算法,模型使用等,也都是具體問題具體分析,沒有哪種處理方式就一定是最好的。總結歸總結,最重要的是要自己親自去處理。而各種方法的使用條件,也是在不斷對數據進行處理,建模的過程中摸索出來的。這是數據挖掘的難點,但也是它的迷人之處。

七、參考文獻

https://blog.csdn.net/yehui_qy/article/details/53791006
https://blog.csdn.net/holandstone/article/details/79034843
https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E9%A2%84%E5%A4%84%E7%90%86/2711288?fr=aladdin

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章