1、贝叶斯要解决的问题

  • 正向概率
  • 逆向概率

    1.1 贝叶斯公式

    贝叶斯算法 - 图1

    1.2 模型比较

  • 最大似然估计:最符合观测数据的(P(B|A)最大)最有优势

  • 奥卡姆剃刀:P(B)最大的最有优势,即先验概率越大越有优势

    1.3 用途

    中文分词、输入纠错、图像分类

    1.4 为什么需要贝叶斯

    直接衡量概率的一种算法

    2、朴素贝叶斯

    就是在贝叶斯的前提下,假设特征之间是独立的,互不影响的。
    另外就是贝叶斯算法可以在极少的样本条件下,也可以得到不错的效果。

3、sklearn例子

sklearn中的贝叶斯类库:GaussianNB(高斯分布的朴素贝叶斯)、MultinomialNB(多项式分布的朴素贝叶斯)、BernoulliNB(伯努利分布的朴素贝叶斯)、ComplementNB(补充朴素贝叶斯)、

  1. import numpy as np
  2. from sklearn import datasets
  3. from sklearn.naive_bayes import GaussianNB
  4. from sklearn.model_selection import train_test_split
  5. import matplotlib.pyplot as plt
  6. digits = datasets.load_digits()
  7. X, Y = digits.data, digits.target
  8. X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, random_state=666)
  9. # 实例化 建模
  10. gnb = GaussianNB().fit(X_train, Y_train)
  11. # 查看分数
  12. gnb.score(X_test, Y_test)
  13. Y_pred = gnb.predict(X_test)
  14. # 这里Y_pred 是对所有样本的概率估计 并且最后去的概率最大的值
  15. Y_pred.shape
  16. Y_pred[1, :].sum()