朴素贝叶斯之多项式模型

MultinomialNB 实现了数据服从多项式分布时的贝叶斯算法。

import numpy as np

#随机产生0-4之间的整数,产六组,一组100个
x = np.random.randint(5, size=(6, 10))

y = np.array([1, 2, 3, 4, 5, 6])

from sklearn.naive_bayes import  MultinomialNB

mnb = MultinomialNB();
mub_model = mnb.fit(x, y)


print(mub_model.predict(x[2:3]))


结果:

[3]

朴素贝叶斯之高斯模型

GaussianNB 实现了朴素贝叶斯的高斯模型( Gaussian Naive Bayes )的分类算法。

from sklearn import datasets
iris = datasets.load_iris()

from sklearn.naive_bayes import GaussianNB

gnb = GaussianNB()

gnb_model = gnb.fit(iris.data, iris.target)

y_pred = gnb_model.predict(iris.data)

print("Number of mislabeled points out of a total %d points : %d"
      % (iris.data.shape[0],(iris.target != y_pred).sum()))


结果:

Number of mislabeled points out of a total 150 points : 6

朴素贝叶斯之伯努利模型模型

类 BernoulliNB 实现了对于服从多元伯努利分布的数据的朴素贝叶斯训练和分类算法; 也就是说,对于大量特征,每一个特征都是一个0-1变量 (Bernoulli, boolean)。 因此,这个类要求样本集合以0-1特征向量的方式展现。如果接收到了其他类型的数据作为参数, 一个 BernoulliNB 实例会把输入数据二元化(取决于 binarize 参数设置)

import numpy as np
X = np.random.randint(2, size=(6, 100))
Y = np.array([1, 2, 3, 4, 4, 5])
from sklearn.naive_bayes import BernoulliNB

BNB = BernoulliNB()
BNB_model = BNB.fit(X, Y)

print(BNB_model.predict(X[2:3]))

结果:

[3]

参考:
1.http://scikit-learn.org/stable/modules/naive_bayes.html
2.http://sklearn.lzjqsdd.com/modules/naive_bayes.html