【问题标题】:Dropout in R: randomly remove elements and replace them with NAR中的Dropout:随机删除元素并用NA替换它们
【发布时间】:2019-03-15 14:20:14
【问题描述】:

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

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

方法 1

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

这实际上不起作用,因为可能匹配,即选择相同的元素。

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

【问题讨论】:

  • 函数is.na&lt;-is.na(b) &lt;- sample(length(b), 10) 相同。

标签: r machine-learning dropout


【解决方案1】:

使用函数is.na&lt;-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的人口,sample基于要处理的向量的长度。

set.seed(1)
b <- rnorm(100)
is.na(b) <- sample(length(b), 0.9*length(b))
mean(is.na(b))
#[1] 0.9

【讨论】:

  • 您将如何实施移除 90% 的 NA 人口?
猜你喜欢
  • 1970-01-01
  • 2016-05-07
  • 2015-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多