三种贝叶斯分类

  1. 因变量是定量型的归纳学习称为回归,或者说是连续变量预测

  2. 因变量是定性型的归纳学习称为分类,或者说是离散变量预测
          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]
    原文作者:as394349658
    原文地址: https://blog.csdn.net/as394349658/article/details/99695504
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞