朴素贝叶斯算法python实例
时间: 2023-07-27 11:11:18 浏览: 95
Python实现的朴素贝叶斯算法经典示例【测试可用】
下面是一个朴素贝叶斯算法的 Python 实例,用于分类文本:
```python
import numpy as np
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer
# 生成训练数据
train_data = np.array([
'Chinese Beijing Chinese', 'Chinese Chinese Shanghai',
'Chinese Macao', 'Tokyo Japan Chinese'
])
train_labels = np.array(['c', 'c', 'c', 'j'])
# 使用 CountVectorizer 将文本转换为词袋向量
vectorizer = CountVectorizer()
train_features = vectorizer.fit_transform(train_data)
# 使用 MultinomialNB 训练模型
clf = MultinomialNB()
clf.fit(train_features, train_labels)
# 预测新数据
test_data = ['Chinese Chinese Chinese Tokyo Japan']
test_features = vectorizer.transform(test_data)
predicted_labels = clf.predict(test_features)
print(predicted_labels) # 输出 ['c']
```
在上面的例子中,我们首先生成了训练数据和标签,其中训练数据是一些文本,标签是它们对应的类别。然后使用 `CountVectorizer` 将文本转换为词袋向量,即将每个文本看作一个向量,向量中每个元素表示一个词在文本中出现的次数。
接着使用 `MultinomialNB` 训练模型,该模型是朴素贝叶斯算法的一种变体,适用于多项式分布的数据,例如词袋向量。
最后使用训练好的模型预测新的数据,这里只有一个文本,预测它属于哪个类别。
阅读全文