作为机器学习类分配的一部分,我在不使用任何外部库的情况下实现NaiveBayes分类器。
我的训练数据集X有8个特征和一个800行的二进制标签;我按类别为每个特征计算了1:8向量的均值和sd,以及两个类的先验。
为了评估训练数据集上分类器的准确性,我想生成一个具有相同维度(i = 800,j = 8)的矩阵Y,其中每个元素y_ij都被给定为
a:[1,3]
我试过扫描,申请和lapply但没有成功。我很困难,不幸的是,这是一个熟悉R而不是理解算法的问题。非常感谢帮助。
答案 0 :(得分:0)
可能有更好的数据设置,但如果你已经有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) })