數據預處理的方法與數據模型的選擇相關,比如樹相關的模型對預測數據的特性不敏感,而線性模型則很敏感。
單預測因子的數據轉換
由于有些建模方法對預測因子有很嚴格的要求,通常需要在一定范圍內。常用的轉換方法有Centering,scaling,和skewness transformation
Centering and Scaling
最簡單直接的數據轉換方法是對數據進行居中和縮放,將數據一致減去其平均數,居中后的數據其均值為0. ?類似縮放數據,所有預測因子均除以其標準差。這些方法通常用來提升數值穩定性。
Transformations to resolve skewness
用大拇指定律來判斷數據是否偏態,即最大值是否是最小值的20倍。
Data Reduction and Feature Extraction
Data reduction提煉出包含原始數據大部分信息的小規模預測因子集,新的預測因子集來自原始數據集,這類方法通常被稱為信號提取(signal extraction)或特征提取(feature extraction)
PCA是最常使用的數據消減方法,該方法嘗試尋求預測因子的線性組合即基本成分(Principal components)。第j個PC可寫為
P是預測因子的數量,系數aj1,aj2,...ajP是成分權重,幫助理解哪些因子最重要。PCA方法很流行的原因在于它創建的組件之間都是無關的,這正是一些模型所需要的。但我們要明白,PCA不需要深入了解預測因子和因變量就能獲取到預測因子集。
由于PCA尋求預測因子線性組合變化性的最大化,它會自然抓取更多樣的預測因子。如果原始數據在數量級山谷有差別,那么首要的元素都會是來自高量級的預測因子,而靠后的元素包含較低變化的預測因子。意味著PC的權重將為傾向于高差異的數據。所以PCA將更多考慮數據的測量比率,而不是數據間重要關系。
? ?使用PAC前,最好糾正傾斜的預測因子,并進行Scaling和Centering。
? ? PAC與因變量無關,是一種無監督技術。
Removing Predictors
刪除預測因子的好處有1.減少計算時間和復雜度2.如果兩個預測因子高相關,那么它們衡量的是同樣的潛在信息,移除其中一個因子不應帶來太多性能上的損失,很可能得出一個更簡潔易懂的模型。3.某些模型會因為退化分布而受損,在這些情況中,去除掉有問題的變量能帶來很大的性能提升。
共線指兩個或多個自變量(預測因子)之間有很強的相關性。通常需要避免高相關的自變量。1.冗余的自變量增加模型復雜度。其次有些模型采用高相關自變量會引發模型的不穩定。
減少兩個變量之間的相關性的算法
1.計算自變量相關性矩陣
2.發現相互之間相關性最大的兩個變量(例如A和B)
3.計算A和其他變量的相關性,同樣對B重復這一過程。
4.如果A有最大的平均相關性就刪掉A,否則刪除B
5.重復2--4步,直到沒有任何相關性在閾值之上。
PCA操作的代碼
>pcaObject <- prcomp(segData,center=TRUE,scale.=TRUE)
>percentVariance<-pcaObject$sd^2/sum(pcaObject$sd^2)*100
>percentVariance[1:3]