一、什麼是資料預處理?
一般我們得到的資料會存在有缺失值、重複值等,在使用之前需要進行資料預處理。它是一系列對資料操作的統稱。
資料預處理沒有標準的流程,通常針對不同的任務和資料集屬性的不同而不同。資料預處理的常用流程為:
資料清洗:可以用來清楚資料中的雜訊,糾正不一致。
資料整合:將資料由多個資料來源合併成乙個一致的資料儲存,如資料倉儲。
資料歸約:可以通過如聚集、刪除冗餘特徵或聚類來降低資料的規模。
資料變換:(例如,規範化)可以用來把資料壓縮到較小的區間,如0.0到1.0。
原始資料存在的幾個問題:不一致;重複;含雜訊;維度高等問題。
二、資料清洗
一般資料清洗包括:
缺失值異常值
資料雜訊
資料不平衡
唯一值重複值
格式清洗
思維邏輯
前4個在之前的文章已經提到了,接下來介紹後四個處理方法。
缺失值處理
異常值處理
資料雜訊處理
資料不平衡處理
2.1 唯一值
如資料中id這個屬性,如果每條資料都對應同乙個id,那麼該特徵對資料的**就沒有任何意義,可刪除該列資料。
但並不是所有資料的id都是無意義的。如果每個id都對應了很多的資料,則此時不應刪除該id,而是對每個id中的資料進行統計分析。將乙個id看做一組資料單獨去分析,得到均值、中位數、標準差、峰度、偏度等描述該組分布的資訊,集成為乙個資料。這樣每條資料才會對應乙個id,進而再刪除id。要根據具體的資料應用場景去判斷,而不是一上來就刪除資料。
2.3 格式清洗
2.3.1 資料型別
一般得到的資料雜亂無章,有的資料是數字、時間卻是字串表示,資料型別對不上。此時,應先對資料型別進行轉換,否則無法進行正常運算操作。
2.3.2 時間、日期、數值、全半形等顯示格式不一致
這種問題通常與輸入端有關,在整合多**資料時也有可能遇到,將其處理成一致的某種格式即可。
2.3.3 字元問題
某些內容可能只包括一部分字元,比如身份證號是數字+字母,中國人姓名是漢字(趙c這種情況還是少數)。最典型的就是頭、尾、中間的空格,也可能出現姓名中存在數字符號、身份證號**現漢字等問題。這種情況下,需要以半自動校驗半人工方式來找出可能存在的問題,並去除不需要的字元。
2.3.4 思維邏輯
這個比較玄乎,先通過舉例讓大家感受下。比如**電影票房。票房的資料是不能直接拿過來就用的,因為存在通貨膨脹,需要對票房進行一定的換算,這樣的票房才是能用的資料。也就是說,用的資料是需要符合正常邏輯性的。另外,資料單位的轉換,跟業務的關聯性也是需要考慮的。
說明:總之,資料清洗方面的工作有很多……而且,如果資料處理不好,特徵沒有選好,那麼模型再厲害,也無濟於事。所以才會經常看到這樣的話,在工作或者競賽中,資料清洗,特徵工程方面的工作佔據了80%以上的時間。其餘模型的使用,需要知道原理,進而調包搭建模型即可。
三、資料整合
資料整合是指把資料從多個資料來源整合在一起,提供乙個觀察這些資料的統一檢視的過程。建立資料倉儲的過程實際上就是資料整合。
資料整合中的兩個主要問題是:
四、資料歸約
資料歸約是指在盡可能保持資料原貌的前提下,最大限度地精簡資料量。
資料探勘時往往資料量非常大,在少量資料上進行挖掘分析需要很長的時間,資料歸約技術可以用來得到資料集的歸約表示,它小得多,但仍然接近於保持原資料的完整性,並結果與歸約前結果相同或幾乎相同。通常有維歸約、數值歸約。
維歸約指通過減少屬性的方式壓縮資料量,通過移除不相關的屬性,可以提高模型效率。
常見的維歸約方法有:分類樹、隨機森林通過對分類效果的影響大小篩選屬性;小波變換、主成分分析通過把原資料變換或投影到較小的空間來降低維數。
數值歸約用較小的資料表示形式替換原始資料。代表方法為對數線性回歸、聚類、抽樣等。
五、資料變換
通過平滑聚集,資料概化,規範化等方式將資料轉換成適用於資料探勘的形式。比如說,對於線性回歸,資料進行歸一化或標準化,統一量綱後的效果要比之前要好。因為是用距離去度量的,而樹模型則不用進行這種變換。
光滑:去掉雜訊;
特徵構造:由給定的屬性構造出新屬性並新增到資料集中。例如,通過「銷售額」和「成本」構造出「利潤」,只需要對相應屬性資料進行簡單變換即可
聚集:對資料進行彙總。比如通過日銷售資料,計算月和年的銷售資料;
規範化:把資料單按比例縮放,比如資料標準化處理;
離散化:將定量資料向定性資料轉化。比如一系列連續資料,可用標籤進行替換(0,1);
六、總結
之前對資料清洗,資料預處理,特徵工程等概念比較混淆。通過查詢不同的資料,也發現有的定義不太一樣,比如特徵工程包括了資料預處理,資料清洗,而資料預處理有時又包括了資料清洗和特徵工程的一部分。
通過本次**,把資料預處理歸為模型**前的所有處理過程,包括了資料清洗和特徵工程。
資料清洗專門對髒資料進行清洗,而不設涉及資料的變換和特徵處理。特徵工程則包括了剩下的所有處理方法。
說明:資料預處理的方法有很多,在處理資料,或者資料競賽時,不一定都會用上。需要對資料進行探索性分析,了解資料後,根據資料本身特徵和**目標而合理選擇相應的方法。
不要拘泥於用所有方法都對資料用一遍,這樣不僅自己很累,也得不到想要的效果。包括後面要介紹的各種機器學習的演算法,模型使用等,也都是具體問題具體分析,沒有哪種處理方式就一定是最好的。總結歸總結,最重要的是要自己親自去處理。而各種方法的使用條件,也是在不斷對資料進行處理,建模的過程中摸索出來的。這是資料探勘的難點,但也是它的迷人之處。
資料探勘 資料處理
最近學校開了資料建模課程,根據學習內容做個小結。2 探索性資料分析eda 目的 熟悉資料集,了解資料集,對資料集進行驗證來確定所獲得資料集可以用於接下來的機器學習或者深度學習使用。了解變數間的相互關係以及變數與 值之間的存在關係。引導資料科學從業者進行資料處理以及特徵工程的步驟,使資料集的結構和特徵...
資料探勘(資料處理基礎)
資料及資料型別 資料是資料庫儲存的基本物件,狹義的資料理解為數值,廣義的資料理解為記錄。資料的屬性 標稱 nominal 序數 ordinal 區間 interval 和比率。標稱的屬性 只提供足夠的資訊以區分物件,例如甲乙丙 序數屬性 提供足夠的資訊,區別物件的序,例如及格,不及格 區間屬性 其屬...
資料處理 流資料處理利器
流處理 stream processing 是一種計算機程式設計正規化,其允許給定乙個資料序列 流處理資料來源 一系列資料操作 函式 被應用到流中的每個元素。同時流處理工具可以顯著提高程式設計師的開發效率,允許他們編寫有效 乾淨和簡潔的 流資料處理在我們的日常工作中非常常見,舉個例子,我們在業務開發...