R語言資料探勘(2) 資料預處理
一 、資料清理
檢查資料質量的重要性
除了在建立模型之前需要完成資料清理,在對資料結構的探索和對模型的描述和預測過程中都需要不斷檢查資料質量
探索的過程中,出現任何異常情況都需要解釋和處理。
比如分類變數應該注意頻率特別低的類別,它可能是錯誤分類或者原本屬於相鄰類別的資料
1.缺失值處理
1.1判斷缺失值的方法
sum(is.na(x)) NA的總個數
sum(complete.cases(x)) 完整觀測的總個數
mice包 md.pattern()
1.2處理缺失值的方法
刪除:刪除觀測樣本,刪除變數,使用原始完整資料,改變權重
改變權重:通過對完整資料按照不同的權重進行加權,可以降低刪除資料帶來的偏差
插補法:均值插補,迴歸插補,二階插補,熱平臺,冷平臺,抽樣填補
抽樣填補:從總體中隨機抽取某個樣本代替缺失樣本
sub=which(is.na(nhanes2[,4]==TRUE))
dataTE=nhanes2[-sub,]
dataTR=nhanes2[sub,]
dataTE[,4]=sample(dataTR[,4],length(dataTE[,4],replace=T)
均值插補:計算非缺失值的均值。亦可使用中位數,四分位數等
迴歸插補:將需要插補的變數作為因變數,其他相關變數作為自變數通過迴歸模型預測缺失值
熱平臺插補:在非缺失資料集中找到一個與缺失值所在樣本類似的樣本,利用其中的觀測值對缺失值進行插補
冷平臺插補:按照某些變數將資料分層,在層內對缺失值進行均值插補
2.噪聲資料處理
2.1噪聲檢測
outliers包 outlier(x,opposite=F,logical=F) 尋找資料集中與其他觀測值及均值差距最大的點作為異常值。opposite=T給出最遠值的相反值;logical=T將這些點顯示為TRUE
離群點檢測也可以通過聚類進行。落在“簇”集合外的值被視為離群點
2.2噪聲處理
噪聲資料處理有:分箱,迴歸,計算機檢查和人工檢查結合等
分箱:對資料排序,利用資料近鄰來光滑有序資料值的一種區域性光滑方法。 如箱均值光滑,就是指使用均值來代替箱中的值。
等寬箱均值光滑方法:
x=rnorm(12)
x=sort(x)
dim(x) =c(3,4)
x[1,]=apply(x,1,mean)[1]
x[2,]=apply(x,1,mean)[2]
x[3,]=apply(x,1,mean)[3]
迴歸:通過函式擬合對資料進行光滑處理
3.資料不一致處理
vapply(x,FUN,FUN.VALUE,...,USE.NAMES=T)
FUN.VALUE可以直接對返回值型別進行檢查
4.資料整合:將多個數據源中的資料合併,存放到一個一致的資料儲存中。
資料集屬性的“匹配”
資料集冗餘檢測:對於定性資料,可以使用卡方檢驗;對於定量資料,可以使用相關係數和協方差
卡方檢驗chisq.test(x)
協方差 cor(x)
5.資料變換
1.光滑:去掉資料中的噪聲,通過分箱,迴歸和聚類等技術實現
2.屬性構造:構造新屬性,簡單的資料變換即可
3.聚集:對資料進行彙總
4.規範化:把資料按比例縮放,使之落入一個小區間,比如標準化
5.離散化:數值屬性的原始值用區間標籤或概念標籤替換
6.由標稱資料產生概念分層
6.資料規約:為了壓縮資料量,原資料可以用資料集的規約來表述。可以通過維歸約,數值規約等方式實現
維歸約:減少屬性。AIC原則,LASSO