我正在做一个朴素贝叶斯预测模型,其中有 666 个特征可供选择。
我已经尝试过 SelectKBest chi2 测试,但它是一个特征标签测试,而我想要做的是找出独立性和相关性特征。由于使用朴素贝叶斯的假设是变量都是相互独立的,所以我必须删除相互依赖/相关的特征。
除了我应该研究的其他独立性测试还有哪些? (我有连续的特征)
我正在做一个朴素贝叶斯预测模型,其中有 666 个特征可供选择。
我已经尝试过 SelectKBest chi2 测试,但它是一个特征标签测试,而我想要做的是找出独立性和相关性特征。由于使用朴素贝叶斯的假设是变量都是相互独立的,所以我必须删除相互依赖/相关的特征。
除了我应该研究的其他独立性测试还有哪些? (我有连续的特征)
这个包非常有用,它具有engg 的功能。为您,为您提供重要的变量。示例代码将是这样的。
set.seed(123)
boruta.input <- Boruta(target variable~., data = training_data, doTrace = 2)
print(boruta.input)
#plot a graph for better understanding
plot(boruta.input, xlab = "", xaxt = "n")
lz<-lapply(1:ncol(boruta.input$ImpHistory),function(i)
boruta.input$ImpHistory[is.finite(boruta.input$ImpHistory[,i]),i])
names(lz) <- colnames(boruta.input$ImpHistory)
Labels <- sort(sapply(lz,median))
axis(side = 1,las=2,labels = names(Labels),
at = 1:ncol(boruta.input$ImpHistory), cex.axis = 0.7)
通过使用它,您可以获得所有重要功能,但缺点是如果您有更多数据则需要时间。在我的情况下,我的数据包含 40 个功能和 200,000 条记录,花了将近 2 个小时,但结果很好。
为了更好地理解,您可以通过此链接
我认为你也可以使用这个测试,在描述中它告诉它也可以应用于数值数据。
如果您有标称数据,则可以使用G-test
再附加一个链接,其中包括对不同类型功能的测试。将来可能会有所帮助链接
我有一个问题,你为什么不在数据集上应用 PCA(或任何 DR 技术)?(假设您没有尝试任何 DR 技术)
如果您应用 DR 技术,我认为您可能会获得更好的组件,这将有助于您获得更好的结果/更好地理解数据。
正如您提到的,您使用的是NB Classifier,您为什么选择它,有什么具体原因吗?如您所知,还有许多其他分类器可能超过 NB 分类器。在我的例子中,我使用 NB 分类器进行 twitter 情绪挖掘,因为这些是短句,而 NB 分类器最适合我的分析。
希望我的回答有帮助!
注意:朴素贝叶斯
DR:降维