0

我想实现 dropout,即用 NA 随机替换元素并用 NA 值返回向量/列表。

想要的结果是减少过度拟合,因此可能有更好的便利功能。

方法一

b<-rnorm(100); b[match(sample(b,10),b)] <- NA

其中 10 个值替换为 NA。

方法2.如何去除90%的人口?不工作,低于 90%:

b<-rnorm(99); b[match(sample(b,length(b)*0.9),b)] <- NA

由于可能的匹配(即选择相同的元素),这实际上不起作用。

是否有任何用于辍学的内置或便利功能?

4

1 回答 1

1

使用函数为向量is.na<-赋值。NA

set.seed(1)
b <- rnorm(100)
b[match(sample(b, 10), b)] <- NA

set.seed(1)
b2 <- rnorm(100)
is.na(b2) <- sample(length(b2), 10)

identical(b, b2)
#[1] TRUE

为了实现去除 90% 的带有NA's 的总体,sample基于要处理的向量的长度。

set.seed(1)
b <- rnorm(100)
is.na(b) <- sample(length(b), 0.9*length(b))
mean(is.na(b))
#[1] 0.9
于 2018-10-10T16:00:27.547 回答