我想为从各种已知分布生成的模拟数据计算出真正的贝叶斯分类器。我的问题是双重的。首先,对于任何模型,是否有内置程序可以在R中进行计算? (不过,可以根据其pdf为特定模型进行编码)。其次,更重要的是,如何分别使用训练数据和测试数据训练分类器并做出预测。以下是两类问题,其中条件分布为真实先验概率相等的多元高斯分布。任何令人满意的答案将不胜感激。谢谢!
注意:我不必使用朴素的贝叶斯分类器。
library(mvtnorm)
n.train = 200
n.test = 100
n.train1 = n.train + 1
n.train2 = 2 * n.train
n.test1 = n.test + 1
n.test2 = 2 * n.test
mu0 = c(0, 0)
mu1 = c(1, 1)
sigma0 = matrix(c(1,1,1,4), ncol = 2)
sigma1 = 4 * sigma0
# X: training set
X <- matrix(0, nrow = n.train2, ncol = 3)
X[,3] <- rep(1:2, each = n.train)
X[1:n.train, 1:2] <- rmvnorm(n = n.train, mean = mu0, sigma = sigma0)
X[n.train1:n.train2, 1:2] <- rmvnorm(n = n.train, mean = mu1, sigma = sigma1)
# Y: test set
Y <- matrix(0, nrow = n.test2, ncol = 3)
Y[,3] <- rep(1:2, each = n.test)
Y[1:n.test, 1:2] <- rmvnorm(n = n.test, mean = mu0, sigma = sigma0)
Y[n.test1:n.test2, 1:2] <- rmvnorm(n = n.test, mean = mu1, sigma = sigma1)