Возмущение данных - как это выполнить? - PullRequest
0 голосов
/ 12 декабря 2018

Я занимаюсь некоторыми проектами, связанными с моделированием статистики с использованием R на основе «Введение в научное программирование и моделирование с использованием R», а также на сессии «Проекты студентов» (глава 24), я занимаюсь проблемой «Трубочные пауки Брансуика», ноя застрял в одной части эволюционного алгоритма, где вам нужно выполнить некоторое возмущение данных в соответствии с предложением ниже:

"С вероятностью 0,5 каждый элемент вектора, независимо от других, возмущаетсяколичество, обычно распределенное со средним 0 и стандартным отклонением 0,1 "

Что на самом деле означает" возмущенный "?Я действительно не знаю, какую операцию я должен делать с моим вектором, чтобы это возмущение произошло, и я не нахожу никаких ответов на эту проблему.Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 04 мая 2019
# using the most important features, we create a ML model: 

m1 <- lm(PREDICTED_VALUE ~  PREDICTER_1 + PREDICTER_2 + PREDICTER_N  )
#summary(m1)
#anova(m1)

# after creating the model, we perturb as follows:
#install.packages("perturb") #install the package
library(perturb)
set.seed(1234)  # for same results each time you run the code
p1_new <- perturb(m1, pvars=c("PREDICTER_1","PREDICTER_N") , prange = c(1,1),niter=200)  # your can change the number of iterations to any value n. Total number of iteration would come to be n+1
p1_new  # check the values of p1
summary(p1_new)  
0 голосов
/ 12 декабря 2018

Возмущение просто означает добавление небольшого, шумного сдвига к числу.Ваш код может выглядеть примерно так:

x = sample(10, 10)
ind = rbinom(length(x), 1, 0.5) == 1
x[ind] = x[ind] + rnorm(sum(ind), 0, 0.1)

rbinom получает элементы, которые должны быть изменены с вероятностью 0.5, а rnorm добавляет возмущение.

...