Проведите журнал регистрации по матрице учебных наборов, чтобы найти вероятность регистрации

Как часть назначения класса машинного обучения, я реализую классификатор 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) })

Другие вопросы по тегам