如何交叉验证朴素贝叶斯分类器?

Posted

技术标签:

【中文标题】如何交叉验证朴素贝叶斯分类器?【英文标题】:How to cross validate a Naive Bayes classifier? 【发布时间】:2015-09-24 18:40:29 【问题描述】:

我使用 e1071 进行朴素分类

功能

naiveBayes(x=, y=, )

我想使用 cvTools 进行交叉验证

cvFit(....)

我怎么会写这个,cvFit的文档对我来说真的很难理解

typeof(naiveBayes) is 'closure'

【问题讨论】:

有没有更好的方法来解决这个问题?几年过去了…… 【参考方案1】:

我认为开始使用 caret 包会更好。例如这是我目前正在处理的代码的一部分:

    library('caret')

    train_control <- trainControl(method="cv", number=10)

    #create model
    fit <- train(trainData[, -classIndex], trainData[, classIndex], method = "nb",trControl=train_control)

【讨论】:

这使用了 klaR 包,根据我的经验,这对于天真的贝叶斯来说非常慢。它比 R 中的 e1071 或 Python 中的 sklearn 长 100-1000 倍。

以上是关于如何交叉验证朴素贝叶斯分类器?的主要内容,如果未能解决你的问题,请参考以下文章

Scikit-learn 使用朴素贝叶斯进行 10 折交叉验证的多类分类

使用 10 折交叉验证获取分类报告,说明多项式朴素贝叶斯的分类精度和召回率

贝叶斯分类器(3)朴素贝叶斯分类器

动态朴素贝叶斯分类器和朴素贝叶斯分类器有啥区别

朴素贝叶斯分类器

机器学习系列-朴素贝叶斯分类器