gpt4 book ai didi

r - 插入符号中使用预处理的数据插补返回的观察结果少于预期

转载 作者:行者123 更新时间:2023-12-01 18:32:20 26 4
gpt4 key购买 nike

我想知道为什么 preProcess用于估算数据集缺失值的 R 插入符包中的函数返回的观察结果少于原始数据集中的观察结果?
例如:

library(caret)

t <- data.frame(seq_len(100000),seq_len(100000))

for (i in 1:100000)
{
if (i %% 10 == 0) t[i,1] <- NA;
if (i %% 100 == 0) t[i,2] <- NA
}

preProcValues <- preProcess(t, method = c("knnImpute"))

preProcValues 将仅包含 2 个变量的 90000 个观测值,而预期为 100000 个。

最佳答案

来自文档:

The function preProcess estimates the required parameters for each operation and predict.preProcess is used to apply them to specific data sets.

这里,preProcValues 不是插补后的t,它包含使用predict 对t 执行插补所需的参数。预处理


您不应该期望 preProcValues 中有 100K 个观察值

提示:看看source code使用 NA 值查看引擎盖下发生了什么

使用您的示例(修改为使用 method = "medianImpute" - 请参阅此 question(以及上述源代码)了解您尝试执行的操作为何不起作用“knnImpute”)

preProcValues <- preProcess(t, method = "medianImpute") 
> preProcValues$dim[1]
#[1] 90000

这里我们用中位数(50K)替换t中的NA

t2 <- predict(preProcValues, t)
> dim(t2)[1]
#[1] 100000

关于r - 插入符号中使用预处理的数据插补返回的观察结果少于预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33317287/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com