深度 | 朴素贝叶斯模型算法研究与实例分析 (4)

深度 | 朴素贝叶斯模型算法研究与实例分析

参数

深度 | 朴素贝叶斯模型算法研究与实例分析

使用最大似然法估计。

高斯朴素贝叶斯实现方法代码:

'''高斯朴素贝叶斯''' def MyGaussianNB(trainMat='',Classlabels='',testDoc=''): # -----sklearn GaussianNB------- # 训练数据 X = np.array(trainMat) Y = np.array(Classlabels) # 高斯分布 clf = GaussianNB() clf.fit(X, Y) # 测试预测结果 index = clf.predict(testDoc) # 返回索引 reslist = ['Art','Literature','Education','Philosophy','History'] print(reslist[index[0]]) 多项朴素贝叶斯

MultinomialNB 实现了服从多项分布数据的朴素贝叶斯算法,也是用于文本分类(这个领域中数据往往以词向量表示,尽管在实践中 tf-idf 向量在预测时表现良好)的两大经典朴素贝叶斯算法之一。 分布参数由每类 y 的

深度 | 朴素贝叶斯模型算法研究与实例分析

向量决定, 式中 n 是特征的数量(对于文本分类,是词汇量的大小)

深度 | 朴素贝叶斯模型算法研究与实例分析

是样本中属于类 y 中特征 i 概率

深度 | 朴素贝叶斯模型算法研究与实例分析

参数

深度 | 朴素贝叶斯模型算法研究与实例分析

使用平滑过的最大似然估计法来估计,即相对频率计数:

深度 | 朴素贝叶斯模型算法研究与实例分析

式中 是 训练集 T 中 特征 i 在类 y 中出现的次数,

深度 | 朴素贝叶斯模型算法研究与实例分析

是类 y 中出现所有特征的计数总和。
先验平滑因子

深度 | 朴素贝叶斯模型算法研究与实例分析

应用于在学习样本中没有出现的特征,以防在将来的计算中出现0概率输出。 把

深度 | 朴素贝叶斯模型算法研究与实例分析

被称为拉普拉斯平滑(Lapalce smoothing),而

深度 | 朴素贝叶斯模型算法研究与实例分析

被称为利德斯通(Lidstone smoothing)。

多项朴素贝叶斯实现方法代码:

'''多项朴素贝叶斯''' def MyMultinomialNB(trainMat='',Classlabels='',testDoc=''): # -----sklearn MultinomialNB------- # 训练数据 X = np.array(trainMat) Y = np.array(Classlabels) # 多项朴素贝叶斯 clf = MultinomialNB() clf.fit(X, Y) # 测试预测结果 index = clf.predict(testDoc) # 返回索引 reslist = ['Art','Literature','Education','Philosophy','History'] print(reslist[index[0]]) 伯努利朴素贝叶斯

BernoulliNB 实现了用于多重伯努利分布数据的朴素贝叶斯训练和分类算法,即有多个特征,但每个特征 都假设是一个二元 (Bernoulli, boolean) 变量。 因此,这类算法要求样本以二元值特征向量表示;如果样本含有其他类型的数据, 一个 BernoulliNB 实例会将其二值化(取决于 binarize 参数)。伯努利朴素贝叶斯的决策规则基于

深度 | 朴素贝叶斯模型算法研究与实例分析

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdysg.html