判别式模型(discriminative models):像决策树、BP神经网络、支持向量机等,都可以归入判别式模型,它们都是直接学习出输出Y与特征X的关系
GaussianNB:先验为高斯分布的朴素贝叶斯
MultinomialNB:先验为多项式分布的朴素贝叶斯
BernoulliNB:先验为伯努利分布的朴素贝叶斯
一般来说,如果样本特征的分布大部分是连续值,使用GaussianNB会比较好
如果如果样本特征的分大部分是多元离散值,使用MultinomialNB比较合适
如果样本特征是二元离散值或者很稀疏的多元离散值,应该使用BernoulliNB。
import pandas as pd #导入pandas库
import numpy as np
from sklearn.naive_bayes import MultinomialNB
from imblearn.over_sampling import SMOTE
df = pd.read_excel("第二版表4.1.xlsx") # 读取excle
array1 = df.values #讲excel表格数据转化为矩阵
训练集
array =array1[0:15,1:7]#选取矩阵特定的数据
X=array
训练集分类结果
Y=array1[0:15,7:8]
test=array1[15:19,1:7]#测试集
clf =MultinomialNB()
sm = SMOTE(random_state=42)
clf.fit(X,Y.ravel())
pr=clf.predict(test)
print("贝叶斯分类预测结果:",pr)