为什么caret的preProcess impute方法会自动缩放数据

6
我想处理数据中的NA值,但不想对其进行缩放和居中处理,因此我只需执行以下操作:
preProcess(data, method = "knnImpute", k=10)

或者这个:
preProcess(data, method = "bagImpute")

然而,它会自动缩放和居中数据,这似乎是有意为之的(文档中有说明)。我该如何避免这种情况,只进行数据填补?

1个回答

4

当使用method = "knnImpute"时,无法避免缩放和居中数据,这样做通常是有意义的,因为不这样做很难使用knn。

然而,method = "bagImpute"或者method = "medianImpute"在不要求的情况下不会对数据进行缩放和居中。例如:

mtcars[1, 1] <- NA
pc <- preProcess(data, method = "bagImpute")
head(predict(pc, mtcars))

                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接