2014-12-30 2 views
1

При попытке воспроизвести пример «Распознавание цифр», приведенный на слайде 28 этого lecture на CART, я не могу понять, как создать набор данных с 200 образцами на основе заданного распределение.Создание данных моделирования на основе указанного распределения

# columns to be used for specified distribution 
Digit <- c(1,2,3,4,5,6,7,8,9,0) 
X1 <- c(0,1,1,0,1,1,1,1,1,1) 
X2 <- c(0,0,0,1,1,1,0,1,1,1) 
X3 <- c(1,1,1,1,0,0,1,1,1,1) 
X4 <- c(0,1,1,1,1,1,0,1,1,0) 
X5 <- c(0,1,0,0,0,1,0,1,0,1) 
X6 <- c(1,0,1,1,1,1,1,1,1,1) 
X7 <- c(0,1,1,0,1,1,0,1,1,1) 

# df is the specified distribution 
df <- cbind(Digit,X1,X2,X3,X4,X5,X6,X7) 

10 цифр показаны различными комбинациями включения и выключения семи горизонтальных и вертикальных огней. Каждая цифра представлена ​​7-мерным вектором нулей и единиц.

i th образец formula. Если form2, загорается индикатор j; если form3, j-й свет выключен.

В лекции говорится, что данные для этого примера генерируются неисправным калькулятором. Каждый из семи огней имеет вероятность 0,1 независимо от того, что он находится в неправильном состоянии. Учебный набор содержит 200 образцов в соответствии с указанным распределением.

Не могли бы вы помочь мне понять, как настроить данные моделирования? Спасибо за ваше время.

+0

'матрица (rbinom (70, prob = 0,1, size = 1), ncol = 10)'? –

ответ

2

Ненавижу быть тем парнем, который отвечает на свой пост, но я нашел тот же пример, что и на странице 15 here в документации «rpart». Я продолжу писать ответ, но я удалю вопрос в конце дня, если не услышу другого мнения от сообщества. Извини за мой недосмотр.

# the data for this example is generated by a malfunctioning calculator 
set.seed(1953) # An auspicious year 
n <- 200 
y <- rep(0:9, length=200) 
temp <- c(1,1,1,0,1,1,1, 
      0,0,1,0,0,1,0, 
      1,0,1,1,1,0,1, 
      1,0,1,1,0,1,1, 
      0,1,1,1,0,1,0, 
      1,1,0,1,0,1,1, 
      0,1,0,1,1,1,1, 
      1,0,1,0,0,1,0, 
      1,1,1,1,1,1,1, 
      1,1,1,1,0,1,0) 

# The true light pattern 0-9 
lights <- matrix(temp, 10, 7, byrow = TRUE) 
# Noisy lights 
temp1 <- matrix(rbinom(n*7, 1, 0.9), n, 7) 
temp1 <- ifelse(lights[y+1, ] == 1, temp1, 1-temp1) 
# Random lights 
temp2 <- matrix(rbinom(n*17, 1, 0.5), n, 17) 
x <- cbind(temp1, temp2) 
+3

нет ничего плохого в ответе на свой вопрос. Я бы рекомендовал * не * удалить это. –

Смежные вопросы