【R言語】データ標準化処理
8312 ワード
1、標準化——データ処理 x:1つのマトリクスまたはデータボックスであり、非数値型変数については は無視される. method:データの標準化方法を指定します.デフォルトはcenterとscaleです.(この2つを同時に使用する必要があり、1つを選択すると中心化または平均化しか対応できない) .において、centerは予測変数値から平均値を減算することを示す.scaleは予測変数値を標準差で割ったものであるため、デフォルトの標準化方法は(x−mu)/std(x−mu)/stdである. rangeメソッドを使用する場合、データ基準は[0,1]の範囲、すなわち(x−min)/(max−min)/(max−min)/(max−min)である. thresh:主成分分析(PCA)法を用いる場合、このパラメータは積算分散が少なくとも0.95 に達することを指定する. pcaComp:主成分分析(PCA)法を使用する場合、thresh よりも優先度の高い保持主成分数を指定することができる. na.remove:デフォルト欠落値データの除去 k:欠落値をk-近隣メソッドで記入する場合は、5 として特定のk値を指定できます. knnSummary:欠落値 の代わりにk個の近隣の平均値を用いる. outcome:データセットの出力変数を指定し、BOX-COXでデータを変換する場合、このパラメータは出力変数 を指定する必要がある. fudge:指定BOX-COX変換のlambda値変動範囲 numUnique:変数yによるBOX-COX変換 を推定する一意の値を指定 verbose:詳細な結果を出力する必要があるかどうかを指定する object:preProcessオブジェクト newdata:処理が必要な新しいデータセットを指定する 2.iris例――scale(平均分散標準化)
3.irisの例――max-min(標準化)
4.標準化されたデータの復元—salce(平均-分散標準化)
たとえば、trainデータを標準化し、trainデータのパラメータでtestデータを標準化することがよくありますが、Rには内蔵された関数はありません.また、一部のモデルとデータにはアウトラインの違いがあり、標準化後にモデリングし、予測する必要があります.予測された値は標準化後のデータです.この場合、予測されたデータを実際のデータに復元する必要があります.この場合、元のデータの標準化パラメータが必要です.
5.標準化されたデータを復元する—max-min
6.標準化データの復元:DMwR::unscale()関数
preProcess(x, method = c("center", "scale"),
thresh = 0.95, pcaComp = NULL, na.remove = TRUE, k = 5,
knnSummary = mean, outcome = NULL, fudge = 0.2, numUnique = 3,
verbose = FALSE, freqCut = 95/5, uniqueCut = 10, cutoff = 0.9, ...) predict(object, newdata, ...)
ppMethods
library(caret)
library(dplyr)
head(scale(iris[,1:4]))
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## [1,] -0.8976739 1.01560199 -1.335752 -1.311052
## [2,] -1.1392005 -0.13153881 -1.335752 -1.311052
## [3,] -1.3807271 0.32731751 -1.392399 -1.311052
## [4,] -1.5014904 0.09788935 -1.279104 -1.311052
## [5,] -1.0184372 1.24503015 -1.335752 -1.311052
## [6,] -0.5353840 1.93331463 -1.165809 -1.048667
stand_scale
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1 -0.8976739 1.01560199 -1.335752 -1.311052
## 2 -1.1392005 -0.13153881 -1.335752 -1.311052
## 3 -1.3807271 0.32731751 -1.392399 -1.311052
## 4 -1.5014904 0.09788935 -1.279104 -1.311052
## 5 -1.0184372 1.24503015 -1.335752 -1.311052
## 6 -0.5353840 1.93331463 -1.165809 -1.048667
all(scale(iris[,1:4])==predict(stand_scale ,iris[,1:4])) # ,
## [1] FALSE
3.irisの例――max-min(標準化)
normalize
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1 0.22222222 0.6250000 0.06779661 0.04166667
## 2 0.16666667 0.4166667 0.06779661 0.04166667
## 3 0.11111111 0.5000000 0.05084746 0.04166667
## 4 0.08333333 0.4583333 0.08474576 0.04166667
## 5 0.19444444 0.6666667 0.06779661 0.04166667
## 6 0.30555556 0.7916667 0.11864407 0.12500000
stand_range
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1 0.22222222 0.6250000 0.06779661 0.04166667
## 2 0.16666667 0.4166667 0.06779661 0.04166667
## 3 0.11111111 0.5000000 0.05084746 0.04166667
## 4 0.08333333 0.4583333 0.08474576 0.04166667
## 5 0.19444444 0.6666667 0.06779661 0.04166667
## 6 0.30555556 0.7916667 0.11864407 0.12500000
all(iris_max==iris_max_prePro)# , ,
## [1] TRUE
4.標準化されたデータの復元—salce(平均-分散標準化)
たとえば、trainデータを標準化し、trainデータのパラメータでtestデータを標準化することがよくありますが、Rには内蔵された関数はありません.また、一部のモデルとデータにはアウトラインの違いがあり、標準化後にモデリングし、予測する必要があります.予測された値は標準化後のデータです.この場合、予測されたデータを実際のデータに復元する必要があります.この場合、元のデータの標準化パラメータが必要です.
stand_scale % head(.,10)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## [1,] 5.1 3.5 1.4 0.2
## [2,] 4.9 3.0 1.4 0.2
## [3,] 4.7 3.2 1.3 0.2
## [4,] 4.6 3.1 1.5 0.2
## [5,] 5.0 3.6 1.4 0.2
## [6,] 5.4 3.9 1.7 0.4
## [7,] 4.6 3.4 1.4 0.3
## [8,] 5.0 3.4 1.5 0.2
## [9,] 4.4 2.9 1.4 0.2
## [10,] 4.9 3.1 1.5 0.1
head(iris,10)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
5.標準化されたデータを復元する—max-min
stand_range % head(.,10)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## [1,] 5.1 3.5 1.4 0.2
## [2,] 4.9 3.0 1.4 0.2
## [3,] 4.7 3.2 1.3 0.2
## [4,] 4.6 3.1 1.5 0.2
## [5,] 5.0 3.6 1.4 0.2
## [6,] 5.4 3.9 1.7 0.4
## [7,] 4.6 3.4 1.4 0.3
## [8,] 5.0 3.4 1.5 0.2
## [9,] 4.4 2.9 1.4 0.2
## [10,] 4.9 3.1 1.5 0.1
head(iris,10)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
6.標準化データの復元:DMwR::unscale()関数
unscale(vals, norm.data, col.ids)
vals : ,
norm.data : , scale()
col.ids : ( )
# iris 7:3
library(caret)
library(dplyr)
library(DMwR)
## :grid
library(e1071)
#############################################################
##########
#
data(algae)
algae[,4:12] %>% head() # , a1( ) ,
## mxPH mnO2 Cl NO3 NH4 oPO4 PO4 Chla a1
## 1 8.00 9.8 60.800 6.238 578.000 105.000 170.000 50.0 0.0
## 2 8.35 8.0 57.750 1.288 370.000 428.750 558.750 1.3 1.4
## 3 8.10 11.4 40.020 5.330 346.667 125.667 187.057 15.6 3.3
## 4 8.07 4.8 77.364 2.302 98.182 61.182 138.700 1.4 3.1
## 5 8.06 9.0 55.350 10.416 233.700 58.222 97.580 10.5 9.2
## 6 8.25 13.1 65.750 9.248 430.000 18.250 56.667 28.4 15.1
normData % as.data.frame() ) #
normPs % head() # , , 0--1
## 1 2 3 4 5 6
## -0.4688077 -0.5577023 -0.5956463 -0.7180639 -0.4260693 -0.2741933
algae[101:nrow(normData),"a1"] %>% head()#
## [1] 16.5 7.0 58.7 8.7 17.0 12.3
unscale(normPs,normData) %>% head()#
## [,1]
## 1 7.731243
## 2 7.678057
## 3 7.655355
## 4 7.582112
## 5 7.756814
## 6 7.847682