
我一直在尝试对R中的一些缺失值进行KNN补偿,但它在列中引入了负值,而这些列根本不应该有任何负值,比如Age。(Age确实有缺失值,但我不希望它被负值估算)。
下面是我的代码:
#KNN Imputation:
preProcess_missingdata_model <- preProcess(train, method='knnImpute')
preProcess_missingdata_model
# Use the imputation model to predict the values of missing data points
library(RANN) # required for knnImpute
train <- predict(preProcess_missingdata_model, newdata = train) 我应该做些什么来克服这些负值呢?任何建议都将不胜感激。谢谢。
发布于 2018-09-04 10:55:21
您可以明确地告诉preProcessing您想要归因于哪些列。这可以按如下方式完成:
preProcess_missingdata_model <- preProcess(train[,c('Embarked', 'Sex')], method='knnImpute')
您甚至可以通过在逗号前包含一个列表来指定您想要分配的特定行。
发布于 2021-01-10 17:22:26
Caret包的KnnImpute会自动居中和缩放您的数据,因此负值是正常的(实际上,如果您查看函数的结果,您就可以看到它)。
https://stackoverflow.com/questions/52157299
复制相似问题