朴素贝叶斯算法python
时间: 2023-09-13 18:09:26 浏览: 70
朴素贝叶斯算法是一种经典的分类算法,它基于贝叶斯定理和特征条件独立性假设来进行分类。在Python中,可以使用sklearn库中的朴素贝叶斯分类器来实现该算法。
以下是一个简单的示例代码,演示如何使用朴素贝叶斯分类器来进行文本分类:
```python
from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score
# 加载数据集
categories = ['alt.atheism', 'soc.religion.christian', 'comp.graphics', 'sci.med']
data_train = fetch_20newsgroups(subset='train', categories=categories, shuffle=True, random_state=42)
data_test = fetch_20newsgroups(subset='test', categories=categories, shuffle=True, random_state=42)
# 特征提取
vectorizer = CountVectorizer()
X_train = vectorizer.fit_transform(data_train.data)
X_test = vectorizer.transform(data_test.data)
# 训练模型
clf = MultinomialNB()
clf.fit(X_train, data_train.target)
# 预测和评估模型
y_pred = clf.predict(X_test)
accuracy = accuracy_score(data_test.target, y_pred)
print('Accuracy:', accuracy)
```
以上代码中,首先从sklearn.datasets模块中加载了一个文本分类数据集,包含4个不同主题的新闻文章。然后使用CountVectorizer类将文本数据转换成特征向量,最后使用MultinomialNB类训练了一个朴素贝叶斯分类器,并对测试集进行了预测和评估。最终输出了模型的准确率。
需要注意的是,这只是一个简单的示例代码,实际应用中可能需要进行更多的特征工程和模型调参等操作,以提高模型的性能和泛化能力。
阅读全文