私は、トレーニングセットとテストセットを引数としてとり、min-maxスケール/正規化してトレーニングセットを返し、 同じ最小値と最小〜最小スケールの範囲の値/正規化し、テストセットを返します。電車とテストデータのrの最大スケーリング/正規化
今のところ、これは私が出ている機能である:
min_max_scaling <- function(train, test){
min_vals <- sapply(train, min)
range1 <- sapply(train, function(x) diff(range(x)))
# scale the training data
train_scaled <- data.frame(matrix(nrow = nrow(train), ncol = ncol(train)))
for(i in seq_len(ncol(train))){
column <- (train[,i] - min_vals[i])/range1[i]
train_scaled[i] <- column
}
colnames(train_scaled) <- colnames(train)
# scale the testing data using the min and range of the train data
test_scaled <- data.frame(matrix(nrow = nrow(test), ncol = ncol(test)))
for(i in seq_len(ncol(test))){
column <- (test[,i] - min_vals[i])/range1[i]
test_scaled[i] <- column
}
colnames(test_scaled) <- colnames(test)
return(list(train = train_scaled, test = test_scaled))
}
最小最大スケーリングの定義がSOに早く尋ね、この質問に似ている - Normalisation of a two column data using min and max values
私の質問は以下のとおりです。
1.関数内の2つのループをベクトル化する方法はありますか?例えば使用するsapply()
2.ここでやろうとしていることを実行できるパッケージがありますか?
が答えへの試みをありがとう私は、すべての行からその列の最小値を引いて、その範囲で除算することによって、データを基準にスケールする方法を検討しています。あなたの答えは最小の減算を考慮に入れません。 –