Проведите журнал регистрации по матрице учебных наборов, чтобы найти вероятность регистрации
Как часть назначения класса машинного обучения, я реализую классификатор NaiveBayes без использования какой-либо внешней библиотеки.
Мой набор обучающих данных X имеет 8 функций и одну двоичную метку на 800 строк; Я рассчитал 1:8 векторов для среднего и SD для каждого объекта по классам, а также априоры для двух классов.
Чтобы оценить точность классификатора в наборе обучающих данных, я хочу сгенерировать матрицу Y с такими же размерами (i=800, j=8), в которой каждый элемент y_ij задан как
y_ij = dnorm(x_ij, mean = mean_j, sd_j, log = T)
Я пытался подмести, применить и довольствоваться безуспешно. Я застрял, и, к сожалению, это проблема знакомства с R, а не понимания алгоритма. Помощь очень ценится.
1 ответ
Возможно, для этого есть более удобная настройка данных, но если у вас уже есть X
и два вектора средств и SDS, xmean
а также xsd
, ты можешь использовать sapply
, Вот воспроизводимый пример:
X <- matrix(rnorm(30), 10, 3)
xmean <- apply(X, 2, mean)
xsd <- apply(X, 2, sd)
sapply(1:ncol(X), function(j) { dnorm(X[,j], xmean[j], xsd[j], log = TRUE) })