python 朴素贝叶斯
时间: 2023-06-23 19:51:27 浏览: 103
朴素贝叶斯是一种基于概率统计和贝叶斯定理的分类算法,常用于文本分类、垃圾邮件过滤等领域。
在Python中,我们可以使用scikit-learn库中的朴素贝叶斯模块进行分类。具体步骤如下:
1. 准备数据:将数据集分为训练集和测试集;对文本数据进行预处理,如去除停用词、进行词干提取等。
2. 特征提取:将文本数据转换成数值特征向量。常用的方法有词袋模型、TF-IDF等。
3. 模型训练:使用训练集训练朴素贝叶斯分类器。
4. 模型预测:使用测试集进行预测。
Python中的代码示例:
```python
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score
from sklearn.datasets import fetch_20newsgroups
# 准备数据
newsgroups_train = fetch_20newsgroups(subset='train')
newsgroups_test = fetch_20newsgroups(subset='test')
# 特征提取
vectorizer = CountVectorizer(stop_words='english')
train_data = vectorizer.fit_transform(newsgroups_train.data)
test_data = vectorizer.transform(newsgroups_test.data)
# 模型训练
classifier = MultinomialNB()
classifier.fit(train_data, newsgroups_train.target)
# 模型预测
predicted = classifier.predict(test_data)
# 计算准确率
accuracy = accuracy_score(newsgroups_test.target, predicted)
print(f"Accuracy: {accuracy}")
```
上述代码使用20个新闻组数据集进行分类,使用了CountVectorizer进行特征提取,MultinomialNB进行模型训练和预测,最后计算了准确率。
阅读全文