Sklearn的朴素贝叶斯算法python
时间: 2023-10-27 15:19:28 浏览: 104
使用Scikit-learn实现朴素贝叶斯算法十分简单,下面是一个基于多项式模型的朴素贝叶斯分类器的示例代码:
```python
from sklearn.datasets import fetch_20newsgroups # 导入新闻数据集
from sklearn.feature_extraction.text import CountVectorizer # 导入文本特征提取器
from sklearn.naive_bayes import MultinomialNB # 导入多项式朴素贝叶斯分类器
from sklearn.pipeline import Pipeline # 导入管道工具
# 加载数据集
newsgroups_train = fetch_20newsgroups(subset='train')
newsgroups_test = fetch_20newsgroups(subset='test')
# 定义朴素贝叶斯分类器管道
text_clf = Pipeline([
('vect', CountVectorizer()),
('clf', MultinomialNB())
])
# 训练模型
text_clf.fit(newsgroups_train.data, newsgroups_train.target)
# 预测测试集
predicted = text_clf.predict(newsgroups_test.data)
# 输出准确率
print("Accuracy:", np.mean(predicted == newsgroups_test.target))
```
在这个示例中,我们首先从Scikit-learn中导入了新闻数据集和文本特征提取器CountVectorizer,然后定义了一个包含两个步骤的管道:第一步是将文本转换为向量,第二步是使用多项式朴素贝叶斯分类器进行分类。接着我们使用训练集来训练模型,然后用测试集进行预测,并输出准确率。
阅读全文