朴素贝叶斯分类sklearn
时间: 2023-07-22 21:12:16 浏览: 78
朴素贝叶斯分类(Naive Bayes Classification)是一种基于贝叶斯定理的概率分类算法。在sklearn库中,可以使用`sklearn.naive_bayes`模块来实现朴素贝叶斯分类器。
具体来说,sklearn库提供了三种常用的朴素贝叶斯分类器:高斯朴素贝叶斯(Gaussian Naive Bayes)、多项式朴素贝叶斯(Multinomial Naive Bayes)和伯努利朴素贝叶斯(Bernoulli Naive Bayes)。
- 高斯朴素贝叶斯适用于特征的分布近似为高斯分布的情况。
- 多项式朴素贝叶斯适用于特征是离散计数数据的情况,常用于文本分类问题。
- 伯努利朴素贝叶斯适用于特征是二元离散数据的情况,常用于文本分类问题。
以下是一个使用sklearn库中的朴素贝叶斯分类器进行分类的示例代码:
```python
from sklearn.naive_bayes import GaussianNB, MultinomialNB, BernoulliNB
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建朴素贝叶斯分类器对象
gnb = GaussianNB() # 高斯朴素贝叶斯
mnb = MultinomialNB() # 多项式朴素贝叶斯
bnb = BernoulliNB() # 伯努利朴素贝叶斯
# 在训练集上训练模型
gnb.fit(X_train, y_train)
mnb.fit(X_train, y_train)
bnb.fit(X_train, y_train)
# 在测试集上进行预测
y_pred_gnb = gnb.predict(X_test)
y_pred_mnb = mnb.predict(X_test)
y_pred_bnb = bnb.predict(X_test)
# 计算准确率
accuracy_gnb = accuracy_score(y_test, y_pred_gnb)
accuracy_mnb = accuracy_score(y_test, y_pred_mnb)
accuracy_bnb = accuracy_score(y_test, y_pred_bnb)
print("Accuracy (Gaussian Naive Bayes):", accuracy_gnb)
print("Accuracy (Multinomial Naive Bayes):", accuracy_mnb)
print("Accuracy (Bernoulli Naive Bayes):", accuracy_bnb)
```
以上代码使用了鸢尾花数据集(iris)进行示例,分别使用了高斯朴素贝叶斯、多项式朴素贝叶斯和伯努利朴素贝叶斯进行分类,并计算了它们在测试集上的准确率。你可以根据自己的数据集和需求选择适合的朴素贝叶斯分类器进行使用。