「这是我参与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))
后记
- 千古兴亡多少事?悠悠。不尽长江滚滚流。