sklearn 的 naive_bayes 模块提供了 3 种朴素贝叶斯算法,分别是高斯朴素贝叶斯、多项式朴素贝叶斯和伯努利朴素贝叶斯。这 3 种算法适用于不同的场景,应该根据特征变量的不同选择不同的算法。
- 高斯朴素贝叶斯:特征变量是连续变量,符合高斯分布,如人的身高、物体的长度。
- 多项式朴素贝叶斯:特征变量是离散变量,符合多项式分布。例如,在文档分类中,特征变量体现在一个单词出现的次数或者单词的 TF-IDF 值等。
- 伯努利朴素贝叶斯:特征变量是布尔变量,符合 0/1 分布,如在文档分类中特征是单词是否出现。
# 导入必要的库
import numpy as np
from sklearn import metrics
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
import matplotlib.pyplot as plt
# 转换数据并划分
X ,Y= [],[]
fr = open("./knn.txt")
for line in fr.readlines():
line = line.strip().split()
X.append([int(line[