与多项分布朴素贝叶斯的规则不同 伯努利朴素贝叶斯明确地惩罚类 y 中没有出现作为预测因子的特征 i ,而多项分布分布朴素贝叶斯只是简单地忽略没出现的特征。
在文本分类的例子中,词频向量(word occurrence vectors)(而非词数向量(word count vectors))可能用于训练和用于这个分类器。 BernoulliNB 可能在一些数据集上可能表现得更好,特别是那些更短的文档。 如果时间允许,建议对两个模型都进行评估。
伯努利朴素贝叶斯代码实现如下:
'''伯努利朴素贝叶斯''' def MyBernoulliNB(trainMat='',Classlabels='',testDoc=''): # -----sklearn BernoulliNB------- # 训练数据 X = np.array(trainMat) Y = np.array(Classlabels) # 多项朴素贝叶斯 clf = BernoulliNB() clf.fit(X, Y) # 测试预测结果 index = clf.predict(testDoc) # 返回索引 reslist = ['Art','Literature','Education','Philosophy','History'] print(reslist[index[0]]) 各种贝叶斯模型分类测试代码实现如下:
def testingNB():
运行结果:
Building prefix dict from the default dictionary ... Loading model from cache C:\Users\ADMINI~1\AppData\Local\Temp\jieba.cache Loading model cost 1.014 seconds. Prefix dict has been built succesfully. 高斯朴素贝叶斯:Education 多项朴素贝叶斯分类结果:Art 伯努利朴素贝叶斯分类结果:Literature 耗时:2.3996 s 参考文献scikit中文社区:
中文维基百科:https://zh.wikipedia.org/wiki/
文本分类特征选择:https://www.cnblogs.com/june0507/p/7601001.html
GitHub:https://github.com/BaiNingchao/MachineLearning-1
图书:《机器学习实战》
图书:《自然语言处理理论与实战》
完整代码下载源码请进【机器学习和自然语言QQ群:436303759】文件下载:
作者声明
本文版权归作者白宁超所有,本文原创,旨在学术和科研使用。文章同步如下:
博客园
我爱自然语言处理
阿里云栖 https://yq.aliyun.com/u/baiboy
腾讯云社区https://cloud.tencent.com/developer/user/2991686