R语言中的Dropout:随机移除元素并替换为NA

我想实现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<-来为向量赋值NA

set.seed(1)b <- rnorm(100)b[match(sample(b, 10), b)] <- NAset.seed(1)b2 <- rnorm(100)is.na(b2) <- sample(length(b2), 10)identical(b, b2)#[1] TRUE

为了实现用NA移除90%的群体,基于要处理的向量的长度使用sample

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注