[英]How to fix predict.naive_bayes using no features for prediction in R
我有一个包含 45045 个变量的数据框,在 R 中只有 90 个观察值。 我做了一个 PCA 来减少维度,我将使用 14 个主成分。 我需要做预测,我想尝试使用朴素贝叶斯方法。 我不能将预测 function 与转换后的数据一起使用,我不理解错误。
这是一些代码:
data.pca <- prcomp(data)
我将使用 14 台电脑:
newdata <- as.data.frame(data.pca$x[,1:14]) #dimension: 90x14
训练:
图书馆(朴素贝叶斯)
mod.nb <- naive_bayes(label ~ newdata$PC1+...+newdata$PC14, data = NULL)
Tryna 预测第 50 个观测值:
test.pca <- predict(data.pca, newdata = data[50,])
test.pca <- as.data.frame(test.pca)
test.pca <- test.pca[,1:14]
pred <- predict(mod.nb, test.pca)
我收到这些错误:
predict.naive_bayes(): Only 0 feature(s) out of 14 defined in the naive_bayes object "mod.nb" are used for prediction.
predict.naive_bayes(): No feature in the newdata corresponds to probability tables in the object. Classification is done based on the prior probabilities
标签向量是一个级别为 1 到 6 的因子,对于我尝试预测结果的任何观察结果都只有 1。例如,第 50 个观察结果的 label 为 4。
您可以尝试仅从您的代码修改的以下代码
data.pca <- prcomp(data)
newdata <- as.data.frame(data.pca$x[,1:14])
library(naivebayes)
mod.nb <- naive_bayes(label ~ newdata$PC1+...+newdata$PC14, data = newdata)
test.pca <- predict(mod.nb, newdata = newdata[50,])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.