本文操作環境:windows7系統、Dell G3電腦。
資料的預處理是指對所收集資料進行分類或分組前所做的審核、篩選、排序等必要的處理。
資料預處理一方面是為了提高資料的質量,另一方面也是為了適應所做資料分析的軟體或方法。一般來說,資料預處理步驟有:資料清洗、資料整合、資料變換、資料歸約,每個大步驟都有一些小的細分點。當然了,這四個大步驟在做資料預處理時未必都要執行。
一、資料清洗
資料清洗,顧名思義,「黑」的變成「白」的,「髒」的資料變成「乾淨」的,髒數據表現在形式上和內容上的髒。
形式上的髒,如:缺失值、有特殊符號的;
內容上的髒,如:異常值。
1、缺失值
缺失值包含缺失值的辨識與缺失值的處理。
在R裡缺失值的辨識使用函數is.na判別,函數complete.cases辨識樣本資料是否完整。
缺失值處理常用的方法有:刪除、替換和插補。
-
刪除法:刪除法根據刪除的不同角度又可以分為刪除觀測樣本和變量,刪除觀測樣本(行刪除法),在R裡na.omit函數可以刪除所含缺失值的行。
這就相當於減少樣本量來換取資訊的完整度,但當變數有較大缺失且對研究目標影響不大時,可考慮刪除變數R裡使用語句mydata[,-p]來完成。 mydata表示所刪資料集的名字,p是該刪除變數的列數,-表示刪除。
替換法:替換法顧名思義對缺失值進行替換,根據變數的不同又有不同的替換規則,缺失值的所在變數是數值型用該變數下其他數的平均數來取代缺失值;變數為非數值變數時則以該變數下其他觀測值的中位數或眾數取代。
-
插補法 :插補法分為迴歸插補和多重插補。
迴歸插補指的是將插補的變數當作因變數y,其他變數看錯自變量,利用迴歸模型進行擬合,在R裡使用lm迴歸函數對缺失值進行插補;
多重插補是指從一個包含缺失值的資料集中產生一組完整的數據,多次進行,產生缺失值的一個隨機樣本,在R裡mice套件可以進行多重插補。
2、異常值
異常值跟缺失值一樣包含異常值的辨識和異常值的處理。
異常值的辨識通常用單變數散點圖或箱形圖來處理,在R裡dotchart是繪製單變數散佈圖的函數,boxplot函數繪製箱現圖;在圖形中,把遠離正常範圍的點當作異常值。
異常值的處理有刪除含有異常值的觀測(直接刪除,當樣本少時直接刪除會造成樣本量不足,改變變數的分佈)、當作缺失值(利用現有的信息,對其當缺失值填補)、平均值修正(用前後兩個觀測值的均值修正該異常值)、不處理。在進行異常值處理時要先複習異常值出現的可能原因,再判斷異常值是否應該捨棄。
二、資料整合
#所謂資料整合就是將多個資料來源合併放到一個資料儲存中,當然如果所分析的資料原本就在一個資料儲存中就不需要資料的整合了(多合一)。
資料整合的實現是將兩個資料框以關鍵字為依據,在R裡用merge函數實現,語句為merge(dataframe1, dataframe2,by=”關鍵字“”),預設按升序排列。
在進行資料整合時可能會出現以下問題:
#同名異義,資料來源A中某屬性名稱和資料來源B中某屬性名字相同,但所表示的實體不一樣,不能作為關鍵字;
異名同義,即兩個資料來源某個屬性名字不一樣但所代表的實體一樣,可作為關鍵字;
資料整合往往造成資料冗餘,可能是同一屬性多次出現,也可能是屬性名字不一致導致的重複,對於重複屬性一個先做相關分析檢測,如果有再刪除。
三、資料變換
#資料轉換就是轉化成適當的形式,來滿足軟體或分析理論的需要。
1、簡單函數變換
簡單函數變換用來將不具有常態分佈的資料變成有常態分佈的數據,常用的有平方、開方、取對數、差分等。如在時間序列裡常對資料對數或差分運算,將非平穩序列轉換成平穩序列。
2、標準化
標準化就是剔除變數量綱上的影響,例如:直接比較身高和體重的差異,單位的不同和取值範圍的不同讓這件事不能直接比較。
最小-最大標準化:也叫離差標準化,對資料進行線性變換,將其範圍變成[0,1]
零-平均值規範化:也叫標準差標準化,處理後的資料平均值等於0,標準差為1
小數定標規範化:移動屬性值的小數位數,將屬性值對應到[-1,1]
3、連續屬性離散化
將連續屬性變數轉換成分類屬性,就是連續屬性離散化,特別是某些分類演算法要求資料是分類屬性,如:ID3演算法。
常用的離散化方法有以下幾種:
等寬法:將屬性的值域分成具有相同寬度的區間,類似製作頻率分佈表;
等頻法:將相同的記錄放到每個區間;
一維聚類:兩個步驟,首先將連續屬性的值用聚類演算法,然後將聚類得到的集合合併到一個連續性值並做相同標記。
四、資料歸約
#資料歸約是指在對挖掘任務和資料本身內容所理解的基礎上、尋找依賴發現目標的資料的有用特徵,以縮減資料規模,從而在盡可能保持資料原貌的前提下,最大限度地精簡資料量。
資料規歸能夠降低無效錯誤的資料對建模的影響、縮減時間、降低儲存資料的空間。
1、屬性歸約
屬性歸約是尋找最小的屬性子集並確定子集機率分佈接近原來資料的機率分佈。
合併屬性:將一些舊的屬性合併一個新的屬性;
逐步向前選擇:從一個空屬性集開始,每次在原來屬性集合選一個目前最優屬性加入到目前子集中,一直到無法選擇最優屬性或滿足一個約束值為止;
逐步先後選擇:從一個空屬性集開始,每次在原來屬性集合選一個當前最差屬性並剔除當前子集中,一直到無法選擇最差屬性或滿足一個約束值為止;
決策樹歸納:沒有出現在這個決策樹上的屬性從初始集合中刪除,得到一個較優的屬性子集;
主成份分析:用較少的變數去解釋原始資料中大部分變數(以相關性高的變數轉換成彼此相互獨立或不相關的變數)。
2、數值歸約
透過減少資料量,包含有參數和無參數方法,有參數如線性迴歸和多元迴歸,無參數法如直方圖、抽樣等。
更多相關知識,請造訪常見問題欄位!