朴素贝叶斯分类python
时间: 2023-06-28 19:13:09 浏览: 155
python编写朴素贝叶斯用于文本分类
朴素贝叶斯分类是一种简单而有效的机器学习算法,经常用于文本分类、垃圾邮件过滤等任务。下面演示如何使用Python中的sklearn库实现朴素贝叶斯分类。
首先,需要安装sklearn库,可以使用以下命令:
```
pip install sklearn
```
接下来,我们需要导入必要的库和数据集:
```python
from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
# 加载数据集
categories = ['alt.atheism', 'soc.religion.christian', 'comp.graphics', 'sci.med']
twenty_train = fetch_20newsgroups(subset='train', categories=categories, shuffle=True, random_state=42)
```
在这个例子中,我们使用20个新闻组数据集中的四个类别作为我们的训练集。接下来,我们将文本转换为数字特征向量,使用TF-IDF向量化器:
```python
# 将文本转换为数字特征向量
tfidf_vectorizer = TfidfVectorizer()
X_train_tfidf = tfidf_vectorizer.fit_transform(twenty_train.data)
```
接下来,我们可以使用朴素贝叶斯分类器进行训练:
```python
# 训练朴素贝叶斯分类器
clf = MultinomialNB().fit(X_train_tfidf, twenty_train.target)
```
现在,我们可以使用训练好的分类器进行预测:
```python
# 使用分类器进行预测
docs_new = ['God is love', 'OpenGL on the GPU is fast']
X_new_tfidf = tfidf_vectorizer.transform(docs_new)
predicted = clf.predict(X_new_tfidf)
# 打印预测结果
for doc, category in zip(docs_new, predicted):
print('%r => %s' % (doc, twenty_train.target_names[category]))
```
运行结果如下:
```
'God is love' => soc.religion.christian
'OpenGL on the GPU is fast' => comp.graphics
```
这说明我们的朴素贝叶斯分类器可以正确地将文本分类为相应的类别。
阅读全文