因变量是定量型的归纳学习称为回归,或者说是连续变量预测
因变量是定性型的归纳学习称为分类,或者说是离散变量预测
P(AB)= P(B|A)P(A)
P(A)叫做A事件的先验概率,就是一般情况下,认为A发生的概率。
P(B|A)叫做似然度,是A假设条件成立的情况下发生B的概率。
P(A|B)叫做后验概率,在B发生的情况下发生A的概率,也就是要计算的概率。
P(B)叫做标准化常量,和A的先验概率定义类似,就是一般情况下,B的发生概率。
(1)高斯朴素贝叶斯(Gaussian Naive Bayes);
(2)多项式朴素贝叶斯(Multinomial Naive Bayes);
(3)伯努利朴素贝叶斯(Bernoulli Naive Bayes)。
其中,高斯朴素贝叶斯是利用高斯概率密度公式来进行分类拟合的。多项式朴素贝叶斯多用于高维度向量分类,最常用的场景是文章分类。伯努利朴素贝叶斯一般是针对布尔类型特征值的向量做分类的过程。
from sklearn.naive_bayes import GaussianNB # 高斯贝叶斯分类
# 0:晴 1:阴 2:降水 3:多云
data_table = [["date", "weather"],
[1, 0],
[2, 1],
[3, 2],
[4, 1],
[5, 2],
[6, 0],
[7, 0],
[8, 3],
[9, 1],
[10, 1]]
# 当天的天气
X = [[0], [1], [2], [1], [2], [0], [0], [3], [1]]
# 当天的天气对应后一天的天气
y = [1, 2, 1, 2, 0, 0, 3, 1, 1]
# 现在把训练数据和对应的分类放入分类器中进行训练
clf = GaussianNB().fit(X, y) # BernoulliNB() 伯努力 ComplementNB() 多项式 GaussianNB() 高斯
p = [[1]]
print(clf.predict(p))
结果为[2]。
一、高斯
>>> import numpy as np
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> Y = np.array([1, 1, 1, 2, 2, 2])
>>> from sklearn.naive_bayes import GaussianNB
>>> clf = GaussianNB()
>>> clf.fit(X, Y)
GaussianNB(priors=None, var_smoothing=1e-09)
>>> print(clf.predict([[-0.8, -1]]))
[1]
>>> clf_pf = GaussianNB()
>>> clf_pf.partial_fit(X, Y, np.unique(Y))
GaussianNB(priors=None, var_smoothing=1e-09)
>>> print(clf_pf.predict([[-0.8, -1]]))
[1]
二、多项式
>>> import numpy as np
>>> X = np.random.randint(5, size=(6, 100))
>>> y = np.array([1, 2, 3, 4, 5, 6])
>>> from sklearn.naive_bayes import ComplementNB
>>> clf = ComplementNB()
>>> clf.fit(X, y)
ComplementNB(alpha=1.0, class_prior=None, fit_prior=True, norm=False)
>>> print(clf.predict(X[2:3]))
[3]
三、伯努力
>>> 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
>>> clf = BernoulliNB()
>>> clf.fit(X, Y)
BernoulliNB(alpha=1.0, binarize=0.0, class_prior=None, fit_prior=True)
>>> print(clf.predict(X[2:3]))
[3]