2022更文挑战10-朴素贝叶斯

493 阅读2分钟

「这是我参与2022首次更文挑战的第10天,活动详情查看:2022首次更文挑战」。

朴素贝叶斯

前文

本文为在学习机器过程中入门阶段的一些笔记及对于知识的总结。作为初学者难免有错误之处以及不完整之处,还请见谅。

朴素贝叶斯

首先来了解一下什么是朴素贝叶斯。

朴素贝叶斯指的是机器学习中的一种算法。简单来说,就是认为机器学习的所有样本的各种特征值具有互不关联的独立性。以此互不独立的特性,大大简化了该算法在机器学习过程中的复杂度。但同样的,由于假设了各特征相互完全独立,在实际的训练样本中,很难与假设保持完全一致,导致了该算法虽然效率很高,但存在一定的错误概率。

朴素贝叶斯主要有三种常用的分类:

  • 贝努利朴素贝叶斯
  • 高斯朴素贝叶斯
  • 多项式朴素贝叶斯

贝努利朴素贝叶斯比较适用于二项分布的数据集,当数据集的特征很多时,使用贝努利朴素贝叶斯进行数据处理的表现可能会比较糟糕。

高斯朴素贝叶斯,也就是符合高斯分布的朴素贝叶斯。由于高斯朴素贝叶斯的分界点比较复杂,能够适应多数情况,因此在实际中有大量应用。多数的样本数据恰好也会是符合高斯分布的数据。

多项式朴素贝叶斯,只适合用来对非离散数据进行分类处理。

最后看一下高斯朴素贝叶斯训练的一个示例:

# 高斯朴素贝叶斯
# 数据集生成工具
from sklearn.datasets import make_blobs
from sklearn.naive_bayes import GaussianNB
# 数据集拆分工具
from sklearn.model_selection import train_test_split

# 生成数据集
X,y = make_blobs(n_samples = 500, centers = 5, random_state = 8)

X_train,X_test,y_train,y_test = train_test_split(X,y,random_state = 8)

nb = GaussianNB()
nb.fit(X_train,y_train)

print(nb.score(X_test,y_test))

后记

  • 千古兴亡多少事?悠悠。不尽长江滚滚流。